我的班级中有一个私有变量,我希望将其设置为经过身份验证的用户。但是出于某种原因,我无法在构造函数中设置变量。以下是我到目前为止的情况:
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->用户时,它可以正常工作。我过去曾多次从构造函数中设置变量,这是它第一次没有为我工作。任何帮助将不胜感激。
答案 0 :(得分:4)
自Laravel 5.3起,您无法再访问控制器构造函数中的会话because middleware has not run yet。
会话中间件运行后发生的You can define a closure(滚动到“构造函数中的会话”)。