0

我有以下两条路线。

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')
                    )
    );

虽然第一个有效,但第二个无效。

我究竟做错了什么 ?

谢谢!

4

2 回答 2

3

您的第二条路线不起作用,因为整个字符串 ":slug-my-string" 被解析为路线元素,而不仅仅是您所期望的 ":slug"。参考

于 2012-09-03T21:07:10.927 回答
0

我最终找到并按预期工作的解决方案如下:

Router::connect('/:slug-:string-:id',
                    array('controller' => 'company_categories', 'action' => 'category_companies'),
                    array(
                        'id' => "[0-9]+",
                        'string' => "my-string"
                        'pass' => array('id')
                    )
    );

这样我就可以处理路由 url 模式中使用的所有类型的静态字符串,并且关于破折号(“-”)的解析不再有问题,我认为这是问题所在。

于 2012-09-04T16:01:44.453 回答