2013-12-12 78 views
8

而不是使用Route::get,Route::post等我的控制器請求我決定使用Route::controller方法,真的有助於減少route.php中的代碼行。Laravel 4如何使用路由名稱別名(使用)與路由::控制器

不過我以前設置一些「路線」的名稱,例如包括我以前的代碼:

Route::get('admin/baserate/view', array('as' => 'baserateview','uses'=>'[email protected]')); 

,但現在,我使用Route::controller我不知道如何實現的路徑別名「 baserateview」。我的新代碼如下所示:

Route::controller('admin/baserate', 'BaserateController'); 

有沒有什麼辦法可以做到這一點?

+0

但有一個路由到控制器的別名沒有任何意義..哪個方法被調用,那麼如果你通過它的別名調用路由? – reikyoushin

+0

我希望指定的控制器內的方法之一有一個名爲路線而不必如果有路由::控制器線I可以利用內的陣列,以使用兩行,例如。 – james

回答

-1

好了,所以這是不可能做到這一切的路線:控制線。我必須去兩條線:

Route::controller('admin/baserate', 'BaserateController'); 
Route::get('admin/baserate/view', array('as' => 'baserateview','uses'=>'[email protected]')); 

......它工作正常。我只是希望會有一個方法來指定的控制器內部的方法之一有一個名爲路線,而不必使用兩行

還是要謝謝你

+2

您應該切換這兩行的順序,使'路線::得到()'優先。如果不是這樣,當你犯了一個'GET'請求'管理員/ baserate/view'它會嘗試找到它在'BaserateController'。當您顯式使用路由別名時,它可能正常工作,但不適合常規請求。 –

22

您可以通過以下方式做到這一點:

// User Controller 
Route::controller(
    'users', 
    'AdminUserController', 
    array(
     'getView'  => 'admin.users.view', 
     'getEdit'  => 'admin.users.edit', 
     'getList'  => 'admin.users.list', 
     'getAdd'  => 'admin.users.add', 
     'getUndelete' => 'admin.users.undelete', 
     'postDelete' => 'admin.users.delete' 
    ) 
); 
+0

請注意,如果你去到默認操作,這並不工作,例如指數與/用戶(僅適用於/用戶/指數) – Valdas

+0

我試圖做到這一點,但我發現了以下錯誤:路徑[authpostlogin]沒有定義。在我的routes.php中我做到了:Route :: controller('/','AuthController',[ 'getLogin'=>'auth.getlogin', 'postLogin'=>'authpostlogin', ]); –