【问题标题】:LARAVEL 5.4 ROLE ON MIDDLEWARELARAVEL 5.4 在中间件上的作用
【发布时间】:2017-06-12 21:32:36
【问题描述】:

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

这是我的路线

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

你们能帮帮我吗。

【问题讨论】:

标签: php laravel middleware


【解决方案1】:

你错过了最初的斜线。

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

接着你的常用功能

【讨论】:

    【解决方案2】:

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

    您应该像这样在RouteController 中返回您的视图:

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

    并将您的路线更改为此

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-22
      • 2018-01-27
      • 2020-02-12
      • 1970-01-01
      • 2017-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多