我把 myRoute 放在auth中间件组中,我得到了
// myController
Auth::guard('web')->user() // null
我不知道该怎么做..我有控制器和路线。
似乎父控制器构造函数正在工作,但中间件不是。
// Controller.php
public function __construct() {
$this->middleware(function ($request, $next) {
$this->currentUser = Auth::guard('web')->user();
return $next($request);
});
}
// myController extends Controller
public function __construct(Request $request) {
parent::__construct();
$this->request = $request;
var_dump($this->currentUser); // null
var_dump(Auth::guard('web')->user); // null
// $userId = Auth::guard('web')->user()->id;
// $userId = $this->currentUser->id;
$this->userId = $userId;
}
// route/web.php
Route::middleware(['auth'])->group(function () {
Route::get('myRoute', 'myController@index');
}
答案 0 :(得分:2)
您无法在构造函数中获取Auth :: user()。尝试Auth :: guard('web') - > user();在另一种方法。结果不再为空