Как в ларавел редактировать модель аутентифицированного юзера?
В коде проекта часто используется получение модели аутентифицированного юзера через глобальную функцию auth()->user()
Далее с этим юзером часто проводятся разные проверки и манипуляции, например
Получить роль через связь (другая таблица)
Получить пермишены через связь (другая таблица)
Получить профиль юзера (другая таблица)
и тд.
Все это порождает кучу лишних запросов.
Вопрос, можно ли как то внедриться в механнику получения юзера и пробросить туда юзера уже с заполненными полями всех требуемых связей ? И чтобы глобально в системе именно в таком виде он отдавался через auth()->user() ?
Дмитрий, вариант с атрибутом $with интересен, но костыльно.
Ведь будет грузиться со связями не только модель аутентифицированного юзера, но и все юзеры в системе, что не нужно.
runprogr,
1. Нет. будет грузиться только модель авторизованного пользователя. Как with поменяет это? with - это банально все запросы User::query() - автоматом будет добавляться with('roles');
2. Эта конструкция не должна порождать 3 одинаковых запроса.