2012-02-29 108 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,名称将被测试。