我设定的路线不起作用:
Route::set('route_id_3', 'mod(/<action>(/<id>(:<name>)))')
->defaults(array(
'controller' => 'mod',
'action' => 'act',
));
当我请求ID作为请求参数时,我会在操作后设置所有内容。 例如'10:名称
无论是冒号,破折号还是加+,都会发生这种情况,除非它是斜杠(/)
所以,只有当我用斜杠替换冒号=&gt; /
如何使用 - 或+或冒号:?
谢谢。
PS。我希望'name'位是可选的。无论是否存在,我都需要它才能发挥作用。并且确实如此,只有id,但我希望它写的名称不会影响它。就像报纸网站的系统一样。谢谢!
答案 0 :(得分: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,名字将被测试。