我在laravel中有仪表板控制器..用户登录我在会话中保存userId ..每个函数我都要访问会话变量userId ..我想将会话值存储在我的构造函数中可变..
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 :(得分:1)
n Laravel 5.3,您无法访问控制器构造函数中的会话或经过身份验证的用户,因为中间件尚未运行
答案 1 :(得分:0)
我建议将其添加到以下方法中:
private function getUserId() {
return ($this->session->has('userId) ? $this->session->get('userId) : null;
}
然后在控制器中调用它:$this->getUserId()
。
或者,您可以将此添加到您的构造中,如下所示:
$this->userId = ($this->session->has('userId) ? $this->session->get('userId) : null;
并与您的班级一起访问$this->userId
。