Как определить аутентифицированного пользователя в конструкторе контроллера Laravel?

116
02 ноября 2019, 02:30

Нашел в документации, что начиная с версии 5.3 нельзя использовать фасад Auth для получения аутентифицированного пользователя в конструкторе контроллера, а только с помощью посредника на основе Closure. Но как это сделать? Покажите на примере. Нижеприведённых код выдает ошибку что объект $user не существует:

public function __construct(){ 
    $this->user=auth()->user();
}
public function getuser(){ 
    $user=this->user;
    return $user;
}
Answer 1

В документации к версии 5.3 у них же пример этот был, чтобы поулчить доступ к сессиям нужно обратиться к middleware:

public function __construct()
{
    $this->middleware(function ($request, $next) {
        $this->projects = Auth::user()->projects;
        return $next($request);
    });
}

В вашем случае получается нужно сделать следующее:

public function __construct()
{
    $this->middleware(function ($request, $next) {
        $this->user = Auth::user();
        return $next($request);
    });
}
READ ALSO
Создал TUN адаптер, пишу в него данные wireshark не показывает первые 4 байта

Создал TUN адаптер, пишу в него данные wireshark не показывает первые 4 байта

Данные первые 4 байта теряются в Wireshark Сам код:

141
Реализация окна ввода параметров

Реализация окна ввода параметров

Реализую счётную программу для нескольких алгоритмовВсе параметры вводятся в отдельном окне

155