我有以下两条路线。
Router::connect('/photo-gallery/:slug-:id',
array('controller' => 'company_categories', 'action' => 'photo_gallery'),
array(
'pass' => array('id'),
'id' => "[0-9]+"
)
);
Router::connect('/:slug-my-string-:id',
array('controller' => 'company_categories', 'action' => 'category_companies'),
array(
'id' => "[0-9]+",
'pass' => array('id')
)
);
虽然第一个有效,但第二个没有。
我做错了什么?
谢谢!
答案 0 :(得分:3)
你的第二条路线不起作用,因为整个字符串“:slug-my-string”被解析为一个路由元素而不仅仅是“:slug”。 Reference
答案 1 :(得分:0)
我最终找到并且按预期工作的解决方案如下:
Router::connect('/:slug-:string-:id',
array('controller' => 'company_categories', 'action' => 'category_companies'),
array(
'id' => "[0-9]+",
'string' => "my-string"
'pass' => array('id')
)
);
这样我可以处理路由url模式中使用的所有类型的静态字符串,并且对于破折号(“ - ”)的解析没有任何问题,我认为这是问题所在。