2012-02-29 54 views
-1

我設置的路由在不工作:Kohana的URI混亂

Route::set('route_id_3', 'mod(/<action>(/<id>(:<name>)))') 
->defaults(array(
    'controller' => 'mod', 
    'action'  => 'act', 
)); 

當我請求ID作爲請求參數,我得到的一切行動後進行設置。 例如'10:名稱」

這種情況是否是一個冒號:,破折號或加+,不會的問題,除非它是一個斜槓(/)

所以,只有當我用斜槓替換冒號工作= >/

我怎樣才能使它與 - 或+或冒號一起工作:?

謝謝。

ps。我想'名字'位是可選的。無論是否存在,我都需要它工作。而且它確實有,只有id,但我希望它能夠使寫入的名稱不會影響它。就像報紙網站的系統一樣。謝謝!

+1

你能舉一個你嘗試過的URL的例子,以及你期望的確切參數嗎? – 2012-03-01 02:46:17

回答

0

您可以通過在set方法中添加正則表達式作爲第三個參數來獲得此信息。

Route::set('route_id_3', 'mod(/<action>(/<id>(:<name>)))', array('id' => '\d+')) 
->defaults(array(
    'controller' => 'mod', 
    'action'  => 'act', 
)); 

':'之前的所有數字都是'id',':'之後的所有數字都將是'name'。

所以如果你的uri是'mod/act/10:test'。那麼你的ID將是10,名稱將被測試。