2017-11-04 23 views
1

私は私のクラスに私が認証されたユーザに設定したいプライベート変数を持っています。何らかの理由で、コンストラクタ内で変数を設定することはできません。ここで私はこれまで持っているものです。Laravelがコンストラクタでクラス変数を設定できません

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

しかし、何らかの理由でnullを変数$user滞在を。しかし、私は$ this-> userの代わりにAuth::user()を使用してもうまく動作します。私は過去に複数回コンストラクタから変数を設定しましたが、これは私にとってうまくいきませんでした。どんな助けもありがとう。

答えて

4

Laravel 5.3以降、コントローラコンストラクタでセッションにアクセスできなくなりました。because middleware has not run yet

You can define a closure(セッションのコンストラクタへのスクロール)は、セッションミドルウェアの実行後に発生します。

+0

ありがとうございました。魅力のように動作します。 –

関連する問題