Cakephp路由:使用破折号打破了它

问题描述 投票:0回答:2

我有以下2条路线。

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

虽然第一个工作,第二个没有。

我究竟做错了什么 ?

谢谢!

cakephp routing
2个回答
3
投票

你的第二个路由不起作用,因为整个字符串“:slug-my-string”被解析为路由元素而不仅仅是“:slug”。 Reference


0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.