2013-07-16 38 views
0

有沒有辦法做出類似這樣的事情?Laravel 4:命名組中的命名路線

Route::group(array('as' => 'admin', 'prefix' => 'admin', 'before' => 'admin'), function() 
{ 
    Route::get('/', array('as' => 'home', 'uses' => '[email protected]')); 
    Route::get('users', array('as' => 'users', 'uses' => '[email protected]')); 
}); 

的目標是不包括在所有名稱爲 「admin」,併爲上面的例子像這樣的鏈接:

URL::route('admin.home'); 
URL::route('admin.users'); 

上面的例子不工作:

Illegal offset type in unset 
laravel/bootstrap/compiled.php:5053 

在作品中使用非公佈路線命名的組。 非團體工作中的命名路線也是如此。 但不在一起。

回答

7
Route::group(['prefix' => 'admin', 'before' => 'adminAuth'], function(){ 
    // If you do not want to repeat 'admin' in all route names, 
    // define the value here 
    $r = 'admin'; 

    Route::get('users', ['as' => "{$r}.users", 'uses' => '[email protected]']); 
    Route::get('/', ['as' => "{$r}.root", 'uses' => '[email protected]']); 
}); 

在YOUT的意見/重定向可以使用URL::action('[email protected])和Laravel就會知道重定向/點......

+0

但你的路由組中使用「prefix->管理」 - 我不認爲你需要重新附加前綴到每個單獨的路線? – Laurence

+1

前綴用於捕獲URL,因此您不需要在組內寫入「admin/users」,URL的「用戶」部分就足夠了。它與路由名稱無關 – Andreyco

+0

arh - ok - 有道理 – Laurence