2017-01-30 82 views
0

我試圖在使用中間件的路由上設置我的角色,但每次登錄到我的系統時,它都會重定向回我的登錄視圖。LARAVEL 5.4在中間件上的角色

這裏是我的路由

Route::group(['middleware' => ['auth','admin']],function(){ 
Route::get('dashboard','[email protected]'); 
    Route::get('admin',function(){ 
    return 'this is admin page'; 
    }); 
}); 

,這裏是我的中間件

public function handle($request, Closure $next) 
{ 
    if(Auth::User()->id_role == 1){ 
     return $next($request); 
    } 
    return redirect::to('dashboard'); 
} 

可以u人helpme。

+0

我不知道,但你應該檢查了這一點,你重定向到'home'默認登錄。 https://github.com/laravel/laravel/blob/master/app/Http/Middleware/RedirectIfAuthenticated.php – Chay22

回答

0

如果登錄成功,那麼中間件檢查ID,如果ID爲1,則返回下一個請求($next($request);)。您的重定向從不發生。 因此,您的adminDashboard函數在RouteController中處理下一個請求。

你應該回到你的觀點在RouteController這樣的:

public function adminDashboard() { 
    return view('your-path-to-your-dashboard'); 
} 

,改變你的路線,這

Route::get('/', '[email protected]'); 
0

你錯過了最初的斜線。

Route::group(['middleware' => ['auth','admin']],function(){ 
    Route::get('/dashboard','[email protected]'); 
    Route::get('/admin',function(){ 
return 'this is admin page'; 

}); })

或者你的控制器內聲明一個構造函數是這樣的:

public function __contstruct(){ 
    $this->middleware('auth'); 
} 

由普通功能其次