LARAVEL 5.4在MIDDLEWARE上的角色

时间:2017-01-30 05:31:59

标签: php laravel middleware

我正在尝试使用中间件设置我的路由角色,但每次登录我的系统时,它都会重定向回我的登录视图。

这是我的路由

Route::group(['middleware' => ['auth','admin']],function(){
Route::get('dashboard','RouteController@adminDashboard');
  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');
}
你们可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

如果登录成功,则中间件检查id,如果id为1,则返回下一个请求($next($request);)。您的重定向永远不会发生。 因此,下一个请求由adminDashboard中的RouteController函数处理。

您应该在RouteController中返回您的观点,如下所示:

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

并更改您的路线

Route::get('/', 'RouteController@adminDashboard');

答案 1 :(得分:0)

你错过了最初的斜线。

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

}); })

或者在你的控制器里面声明一个这样的构造函数:

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

遵循您的常规功能