Php Laravel auth::guard(';web';)->;用户()在身份验证中间件中为空

Php Laravel auth::guard(';web';)->;用户()在身份验证中间件中为空,php,laravel,authentication,Php,Laravel,Authentication,我将myRoute放在auth中间件组中,得到 // myController Auth::guard('web')->user() // null 我不知道该怎么办。。我有下面的控制器和路由 似乎父控制器构造函数正在工作,但中间件没有 // Controller.php public function __construct() { $this->middleware(function ($request, $next) { $this->curr

我将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');
}

无法在构造函数中获取Auth::user()。尝试Auth::guard('web')->user();用另一种方法。结果不再为空

您无法在构造函数中获取Auth::user()。尝试Auth::guard('web')->user();用另一种方法。结果不再为空

您不需要指定guard(“web”),因为默认情况下,laravel假设web guard。我也有同样的问题。你能分享代码吗?它是如何工作的?您不需要指定guard(“web”),因为默认情况下,laravel假设web guard。我也有同样的问题。你能分享代码吗?它是怎么工作的?