//This is the middle ware
public function handle($request, Closure $next)
{
if(auth()->user()->isAdmin()) //isAdmin is a function in the User model which checks if the user is admin or not
{
return redirect('/admin');
} else {
return redirect('/home');
}
return $next($request);
}
//I already registered this middleware in kernel as well as verifyUser
Route::middleware(['auth', 'verifyUser'])->group(function() {
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/admin', 'AdminController@index')->name('admin');
Route::get('/users/profile', 'UserController@view')->name('users.view-profile');
Route::get('/users/edit_profile', 'UserController@edit')->name('users.edit-profile');
});
这里的主要问题是它在浏览器中显示此错误 页面无法正确重定向
Firefox已检测到服务器正在以永远无法完成的方式重定向对此地址的请求。
有时可能是由于禁用或拒绝接受Cookie引起的。
答案 0 :(得分:0)
您要告诉Laravel将管理员重定向到/admin
,将非管理员重定向到/home
。
不过,您也已经对该中间件制作了/admin
和/home
主题,因此,当用户访问/home
时,会将它们重定向到{ {1}}(一次又一次,一次又一次,直到永远)。
您可能需要进行两项更改: