laravel 5.5 Получить информацию о пользователе внутри конструктора

Я создаю приложение с несколькими пользовательскими ролями и действиями. Я следовал официальному документу Laravel (https://laravel.com/docs/5.5/middleware#middleware-parameters).

Но в конструкторе моего контроллера (откуда я называю вышеупомянутое промежуточное программное обеспечение) я использую Auth фасад, чтобы получить детали пользователя. Я знаю, как использовать Auth фасад, я реализовал его в нескольких местах внутри моего приложения. Но когда я использую его внутри конструктора, он возвращает ноль (в состоянии входа в систему — я дважды проверил это).

Я реализовал это так, мне нужно вызвать два контроллера (так как только зарегистрированные пользователи могут получить доступ к этой странице)

public function __construct()
{
$role = Auth::user()->role;
$this->middleware('auth');
$this->middleware('checkRole:$role');
}

PS: я пытался инициализировать переменную $ role как защищенную и вне конструктора, но все еще не работающую. Любые предложения будут полезны

Спасибо.

0

Решение

Это потому, что конструкторы создаются до промежуточного программного обеспечения, поэтому он возвращает нуль.

Этот ответ, вероятно, решит ваши проблемы: Не могу вызвать Auth :: user () для конструктора контроллера

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector