Laravel 无法在构造函数中设置类变量

Eri*_*own 1 php laravel laravel-5.4

我的班级中有一个私有变量,我想将其设置为经过身份验证的用户。但是,出于某种原因,我无法在构造函数中设置变量。这是我到目前为止所拥有的:

private $user = null;


  public function __construct()
    {
        $this->middleware('auth');

        $this->user = Auth::user();
    }

 public function index()
    {
        $return['Admin'] = $this->user;

        return view('home', compact('return'));
    }
Run Code Online (Sandbox Code Playgroud)

但是$user由于某种原因,该变量保持为空。当我Auth::user()代替 $this->user 使用时,它工作得很好。过去我多次从构造函数设置变量,这是它第一次对我不起作用。任何帮助,将不胜感激。

Dev*_*evK 5

从 Laravel 5.3 开始,您不再能够在控制器构造函数中访问会话,因为中间件尚未运行

您可以定义在会话中间件运行后发生的闭包(滚动到“构造函数中的会话”)。