2016-07-28 19 views
0

在laravel我只是做到了这一点:Laravel,相同的URI,不同的路线名称,不同的中间件导致了环

Route::group(["middleware" => "admin"], function() { 

    Route::get("/", "[email protected]")->name("user_index"); 

}); 


Route::group(["middleware" => "user", "as" => "User::"], function() { 

    Route::get("/", "[email protected]")->name("user_index"); 

}); 

的问题是要当,当我登录作为自己的管理身份验证的中间件, “/”我的浏览器返回太多重定向并停止。我猜是因为第二条路线是删除这个,因为当我打印出php artisan route:list时,只有一个结果是“/”,这是用户中间的参数,所以它是defo覆盖以前的路线。

我不明白的是为什么它会这样做,它们都有一个单独的中间件?

这两个中间件都非常简单。下面是我的管理

public function handle($request, Closure $next) 
{ 

    if (Auth::check() && Auth::user()->hasRole("customer_service")) 
    { 
     return $next($request); 
    } 

    return redirect("/"); 
} 

我的用户的中间件是完全一样的,除了作用是不同的

+0

为什么它们都被命名为'user_index'? –

+0

他们不是,管理员是'user_index'用户是'User :: user_index'我试过更改名称,我得到同样的问题:( – sourRaspberri

+0

你是否得到这个固定的?我有同样的问题 – AdRock

回答

0

这可能是错误的,但这个是我做过什么来解决上述这一具体问题。

public function index() { 

    return \Auth::user()->hasRole("trainer") ? \App::call("App\Http\Controllers\Trainer\[email protected]") 
    : \App::call("App\Http\Controllers\User\[email protected]"); 
} 
相关问题