我的 class 中有一个私有变量,我希望将其设置为经过身份验证的用户 . 但是出于某种原因,我无法在构造函数中设置变量 . 这是我到目前为止:
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-> user时,它工作得很好 . 我过去曾多次从构造函数中设置变量,这是它第一次没有为我工作 . 任何帮助,将不胜感激 .
1 回答
从Laravel 5.3开始,您无法再访问控制器构造函数中的会话,because middleware has not run yet .
You can define a closure(滚动到"Session In The Constructor")会话中间件运行后发生 .