2017-11-04 14 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')); 
    } 

변수 $user 비록 어떤 이유로 널 (null) 유지 : 여기에 지금까지 가지고있는 것입니다. 내가 $ this-> user 대신에 Auth::user()을 사용할 때 잘 동작합니다. 과거에 여러 번 생성자에서 변수를 설정했는데 이것이 처음으로 작동하지 않습니다. 어떤 도움을 주시면 감사하겠습니다.

답변

4

Laravel 5.3부터 더 이상 컨트롤러 생성자에서 세션에 액세스 할 수 없습니다. because middleware has not run yet.

You can define a closure (세션에서 생성자로 스크롤) 세션 미들웨어가 실행 된 후에 발생합니다.

+0

대단히 감사합니다. 매력처럼 작동합니다. –