2017-08-31 36 views
0

我把myRoute的權威性中間件組內空,我得到Laravel 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', '[email protected]'); 
} 
+1

你不需要指定guard('web'),因爲在默認情況下,laravel假定web守護。 –

回答

2

您無法在構造函數中獲得Auth :: user()。嘗試Auth :: guard('web') - > user();在另一種方法。結果不是空的

相關問題