2016-11-22 56 views
1

在我的Laravel應用程序中,我有不同的角色(用戶,管理員,管理員)。Laravel路由相同的URL不同控制器

我想知道最佳做法來管理我的每個用戶的主頁,這意味着我想使用相同的URL但不同的意見。

看來,它不能直接在路線上完成:

Route::group(['middleware' => 'auth:user'], function() { 
    $u = 'user.'; 
    Route::get('/', ['as' => $u . 'home', 'uses' => '[email protected]']); 
}); 

Route::group(['middleware' => 'auth:manager'], function() { 
    $m = 'manager.'; 
    Route::get('/', ['as' => $m . 'home', 'uses' => '[email protected]']); 
}); 

其他方式將是每個人都重定向到同一控制器,控制器內,顯示不同的看法。

Route::group(['middleware' => 'auth:all'], function() { 
     $a = 'authenticated.'; 
     Route::get('/', ['as' => $a . 'home', 'uses' => '[email protected]']); 
    }); 

但是它可以成爲,如果你要管理超過2個角色很煩人......

最後的辦法是使像路線一定條件:

Route::group(['middleware' => 'auth:all'], function() { 
      if (Auth::user()->hasRole('user)'{ 
      Route::get('/', ['as' => $a . 'home', 'uses' => '[email protected]']); 
    } else { 
Route::get('/', ['as' => $a . 'home', 'uses' => '[email protected]']); 
} 
     }); 

許多謝謝

回答

1

我wouldnt建議不同的角色在路線本身的不同視圖對我來說最好的辦法是創建控制器,處理所有的頭版請求像f根據用戶或如FrontPageController.blade.php並返回查看,並確保ü根據用戶角色管理視圖目錄結構,如果整個頁面看起來彼此不同,像resources/views/product/admin/view

resources/views/product/user/view 
resources/views/product/manager/view 

如果大部分元素都是一樣的模板文件,我會建議你去大門

+0

thx,我想我會這樣做然後:) – Andrew

+0

如果這解決您的問題標記作爲別人的答案我也會幫助。 –

相關問題