kohana uri confusion


kohana uri confusion

我设置的路由不工作:

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

当我请求ID作为请求参数时,我会在操作后设置所有内容。例如"10:name"

无论是冒号:、破折号还是加号,都会发生这种情况,除非是斜杠(/)

因此,只有当我用斜线=>/替换冒号时,它才有效

如何使用-、+或冒号:?

谢谢。

ps。我希望"name"位是可选的。不管它是否存在,我都需要它来工作。确实如此,仅凭身份证,但我希望这样写名字不会影响它。就像在报纸网站的系统中一样。非常感谢。

您可以通过在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,名字将是test。