2017-01-30 53 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'); 
} 

由普通功能其次