Авторизация - получить модель

После использования трейта Illuminate\Auth\Authenticatable в модели я теперь могу использовать Auth::id() в некоторых местах своего приложения (когда текущая авторизованная вещь — это конкретная модель).

Есть ли способ получить класс/тип авторизованной модели?

Возможно, что-то вроде Auth::model(), которое может вернуть имя класса модели (например, App\Models\User или App\Models\MyCustomAuthCapabaleModel)?

Пожалуйста, поделитесь более подробной информацией. Какую именно черту вы используете?

Nico Haase 28.10.2022 13:30

@NicoHaase Illuminate\Auth\Authenticatable - Однако я не знаю, предоставляет ли он ту функцию, о которой я прошу. Я просто заявил, что использовал его, чтобы иметь возможность выполнять Auth::id(). Главный вопрос - есть ли способ получить авторизованную модель.

Dan. 28.10.2022 13:33

Этот трейт не содержит метода id() в Laravel 8 или 9. Можете ли вы поделиться более подробной информацией о том, как вы используете этот трейт?

Nico Haase 28.10.2022 13:44

Кроме того, помогает ли stackoverflow.com/questions/64787214/…?

Nico Haase 28.10.2022 13:45

Вы ищете Auth::user() ?

Techno 28.10.2022 13:47

@NicoHaase — выполнение Auth::id() обращений getAuthIdentifier() к этой черте.

Dan. 28.10.2022 13:50

@Techno - да, вы правы, так и есть (в любом случае добавьте ::class в конец вашего фрагмента). Думаю, я упустил это из виду, так как искал что-то более общее, чем слово user. Возможно, я неправильно понял, что Authenticatable был разработан для использования с «вещами», которые представляют «вещи», а не только пользователей.

Dan. 28.10.2022 13:52

@NicoHaase - что касается других связанных вопросов - вроде того, но я думаю, что все равно непреднамеренно пропустил бы это, как в моем другом комментарии выше.

Dan. 28.10.2022 13:53

@ Дэн. Спасибо за то, что дали нам знать! Я добавил ответ на вопрос с небольшим объяснением для вас :)

Techno 28.10.2022 14:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
9
59
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Auth::user(); возвращает всю информацию об аутентифицированном пользователе

Спасибо за ваш ответ, но мне придется дать баллы человеку, который помог в комментариях!

Dan. 28.10.2022 14:05
Ответ принят как подходящий

Auth::user(); возвращает модель вошедшего в систему пользователя.

Если вы когда-нибудь захотите изменить модель User, вы можете изменить ее в config/auth.php клавишей providers.users.model

Мне не нужно было ничего добавлять в файл конфигурации, чтобы заставить Auth::user() работать с другими моделями, но похоже, что мне, возможно, придется заглянуть в файл конфигурации / обратиться к нему, чтобы заставить другие вещи работать.

Dan. 28.10.2022 14:07

Извините, если моя формулировка неясна. Я хотел сказать, что он возвращает модель, указанную в вашей конфигурации. Если в какой-то момент вы захотите изменить модель User, вы можете изменить ее здесь. Auth::user() должен вернуть новый класс :)

Techno 28.10.2022 14:09

Вы также можете использовать auth()->user()

zoltalar 28.10.2022 15:13

Другие вопросы по теме