【发布时间】:2017-03-17 15:09:54
【问题描述】:
我已经从 5.2 升级到 5.3,Auth::user() 正在返回 null。
路线
Route::group(['middleware' => ['auth']], function () {
Route::get('/test', 'MyController@showMain');
}
控制器,构造函数调用Auth::check() 返回null
public $user;
public function __construct() {
$this->user = Auth::user();
}
public function showMain() {
return $this->user;
}
Controller 与 showMain 调用 Auth::check() 返回 User(如预期)。
public function __construct() {
// Nothing
}
public function showMain() {
return Auth::user();
}
我还研究了全新安装 5.3 和 5.2->5.3 升级之间的区别。 5.3 中有 2 个额外的类不在升级版中。
- Authenticate.php
- Authorize.php
这些类被Kernel.phpprotected $routeMiddelware中的protected $routeMiddelware调用
我也研究过\Auth::user() is null in 5.3.6?,这不仅不能解决我的具体问题,我也不认为这是一个好的解决方案。
谁能解释一下我为什么会遇到这个问题?
【问题讨论】:
-
由于中间件尚未运行docs,您无法在控制器的构造函数中访问会话或经过身份验证的用户
标签: php laravel authentication laravel-5.2 laravel-5.3