【发布时间】:2016-07-28 17:15:47
【问题描述】:
在 laravel 中我只是这样做了:
Route::group(["middleware" => "admin"], function() {
Route::get("/", "UserController@index")->name("user_index");
});
Route::group(["middleware" => "user", "as" => "User::"], function() {
Route::get("/", "DocumentController@index")->name("user_index");
});
问题是当我以管理员身份验证中间件登录时,当转到“/”时,我的浏览器返回太多重定向并停止。我猜是因为第二条路线正在删除它,因为当我打印出php artisan route:list 时,“/”只有一个结果,并且与用户中间的参数有关,因此它覆盖了前一条路线。
我不明白的是,它为什么会这样做,因为它们都有一个单独的中间件?
这两个中间件都非常简单。下面是我的管理员
public function handle($request, Closure $next)
{
if ( Auth::check() && Auth::user()->hasRole("customer_service") )
{
return $next($request);
}
return redirect("/");
}
而我的用户的中间件除了角色不同之外完全一样
【问题讨论】:
-
为什么都叫
user_index? -
他们不是,管理员是
user_index用户是User::user_index我试过更改名称,但遇到了同样的问题:( -
你解决了吗?我有同样的问题
-
我做到了。老实说,我有点破解它。我做了一个额外的控制器,它为我做了条件,所以只有一条路线。如果你愿意,我可以找到它吗? @AdRock
-
那太好了