2013-06-27 85 views
1

我想爲Laravel 4中的所有路由使用命名參數,而不是依賴路由定義中的位置。我無法在手冊中找到描述如何執行此操作的任何內容。Laravel 4路由中命名參數的語法是什麼?

我看到這個問題的GitHub表示此功能在Laravel 4存在:https://github.com/laravel/laravel/pull/832#issuecomment-8217765

我已經試過以冒號前綴設置路由,例如

Route::get('{:foo}/{:bar}', function($bar, $foo) {}) 

我也嘗試使用這似乎是舊的語法,與(:foo)/(:bar)而不是花括號,但也不管用。參數始終按照它們在路徑中定義的順序來完成。

示例:

我工作的應用程序支持一些我需要維護的路線。但他們並沒有以適當的寧靜風格設計。

/autoaccount /用戶/ 2/3指的是與ID的用戶的ID = 2的自動帳戶= 3

這個新的設計是:

/users/{userid}/autoaccounts/{autoaccountid}

因此,這些參數對於新路線的順序不同。我想將這兩條路線都指向相同的功能。

+0

你能舉一個路線的例子,你想要做什麼? –

+0

我有幾條傳統路由需要維護,這些路由沒有使用一致的REST風格設計。我希望能夠爲舊網址創建路線並將它們指向與我擁有的一些新路線相同的功能。 – user2453461

+0

我現在在我的問題中提供了一個例子。 – user2453461

回答

0

Laravel 4如您所說支持。

您需要在大括號中的變量,你都做了,但沒有冒號:

文檔的路由是here

相關的例子:

Route::get('user/{id}/{name}', function($id, $name) 
{ 
    // 
}) 
->where(array('id' => '[0-9]+', 'name' => '[a-z]+')) 

注意,where()部分是可選的。

查看上面鏈接的可用選項的文檔。請注意,您可以在傳遞給Route::method()調用的數組中定義控制器方法和其他選項。

最後,請參閱controller docs路由到控制器。