我已經從5.2 - > 5.3升級,並且Auth::user()
返回null
。Laravel 5.2 - > 5.3 Auth :: user()返回null
路線
Route::group(['middleware' => ['auth']], function() {
Route::get('/test', '[email protected]');
}
控制器與構造調用Auth::check()
返回null
public $user;
public function __construct() {
$this->user = Auth::user();
}
public function showMain() {
return $this->user;
}
控制器與showMain
主叫Auth::check()
返回User
(如預期)。
public function __construct() {
// Nothing
}
public function showMain() {
return Auth::user();
}
我也看過5.3和5.3-> 5.3升級的乾淨安裝之間的區別。 5.3中有兩個額外的類不在升級版本中。
- Authenticate.php
- Authorize.php
而這些類是由Kernel.php
在protected $routeMiddelware
叫我也看着\Auth::user() is null in 5.3.6?,這不僅不解決我的具體問題,我也不認爲這是一個好的解決方案。
有人可以向我解釋爲什麼我會遇到這個問題?
你不能訪問會話或身份驗證的用戶您控制器的構造函數,因爲中間件還沒有運行[文檔](https://laravel.com/docs/5.3/upgrade#5.3-session-in-constructors) –