我正在尝试使用中间件设置我的路由角色,但每次登录我的系统时,它都会重定向回我的登录视图。
这是我的路由
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');
}
你们可以帮忙吗?
答案 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');
}
遵循您的常规功能