在auth中间件中,Laravel auth :: guard(' web') - > user()为null

时间:2017-08-31 02:53:12

标签: php laravel authentication

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

1 个答案:

答案 0 :(得分:2)

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

相关问题