2016-10-12 18 views
0

私はlaravel..onceにダッシュボードコントローラを持っています。私はセッションのuserIdを保存しています..every機能私はセッション変数userIdにアクセスする必要があります。コンストラクタ変数にセッション値を格納する。laravelのコンストラクタセッションで保護された変数を使用する方法

protected $users; 

protected $session; 

protected $userId; 

public function __construct(Users $users,Session $session){ 
     $this->users  = $users; 
     $this->session = $session; 
     if($this->session->has('userId)){ 
     $this->userId = $this->session->get('userId); 
     } 
} 

public function login(){ 
    // After success saving userId in session and assing like as below 
    $this->userId = $response['id']; 
} 

public function dashboard(){ 
    echo $this->userId; // Is empty 
} 

これはどのような解決方法ですか?

答えて

0

私のような方法にこれを追加することをお勧めしたい:あなたのコントローラで$this->getUserId():それからちょうど同じようにそれを呼び出す

private function getUserId() { 
    return ($this->session->has('userId) ? $this->session->get('userId) : null; 
} 

また、あなたはこのようなあなたの構造にこれを追加することができます。

$this->userId = ($this->session->has('userId) ? $this->session->get('userId) : null;とあなたのクラスに$this->userIdのようにアクセス。

1

nミドルウェアがまだ実行されていないため、Laravel 5.3ではコントローラのコンストラクタでセッションまたは認証されたユーザーにアクセスできません

関連する問題