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

时间:2017-11-04 23:41:45

标签: 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'));
    }

变量$user由于某种原因保持为null。当我使用Auth::user()代替$ this->用户时,它可以正常工作。我过去曾多次从构造函数中设置变量,这是它第一次没有为我工作。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

自Laravel 5.3起,您无法再访问控制器构造函数中的会话because middleware has not run yet

会话中间件运行后发生的

You can define a closure(滚动到“构造函数中的会话”)。