После использования трейта Illuminate\Auth\Authenticatable в модели я теперь могу использовать Auth::id() в некоторых местах своего приложения (когда текущая авторизованная вещь — это конкретная модель).
Есть ли способ получить класс/тип авторизованной модели?
Возможно, что-то вроде Auth::model(), которое может вернуть имя класса модели (например, App\Models\User или App\Models\MyCustomAuthCapabaleModel)?
@NicoHaase Illuminate\Auth\Authenticatable - Однако я не знаю, предоставляет ли он ту функцию, о которой я прошу. Я просто заявил, что использовал его, чтобы иметь возможность выполнять Auth::id(). Главный вопрос - есть ли способ получить авторизованную модель.
Этот трейт не содержит метода id() в Laravel 8 или 9. Можете ли вы поделиться более подробной информацией о том, как вы используете этот трейт?
Кроме того, помогает ли stackoverflow.com/questions/64787214/…?
Вы ищете Auth::user() ?
@NicoHaase — выполнение Auth::id() обращений getAuthIdentifier() к этой черте.
@Techno - да, вы правы, так и есть (в любом случае добавьте ::class в конец вашего фрагмента). Думаю, я упустил это из виду, так как искал что-то более общее, чем слово user. Возможно, я неправильно понял, что Authenticatable был разработан для использования с «вещами», которые представляют «вещи», а не только пользователей.
@NicoHaase - что касается других связанных вопросов - вроде того, но я думаю, что все равно непреднамеренно пропустил бы это, как в моем другом комментарии выше.
@ Дэн. Спасибо за то, что дали нам знать! Я добавил ответ на вопрос с небольшим объяснением для вас :)






Auth::user(); возвращает всю информацию об аутентифицированном пользователе
Спасибо за ваш ответ, но мне придется дать баллы человеку, который помог в комментариях!
Auth::user(); возвращает модель вошедшего в систему пользователя.
Если вы когда-нибудь захотите изменить модель User, вы можете изменить ее в config/auth.php клавишей providers.users.model
Мне не нужно было ничего добавлять в файл конфигурации, чтобы заставить Auth::user() работать с другими моделями, но похоже, что мне, возможно, придется заглянуть в файл конфигурации / обратиться к нему, чтобы заставить другие вещи работать.
Извините, если моя формулировка неясна. Я хотел сказать, что он возвращает модель, указанную в вашей конфигурации. Если в какой-то момент вы захотите изменить модель User, вы можете изменить ее здесь. Auth::user() должен вернуть новый класс :)
Вы также можете использовать auth()->user()
Пожалуйста, поделитесь более подробной информацией. Какую именно черту вы используете?