2016-07-28 21 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]"); 
} 
相關問題