【问题标题】:Cakephp routing: using dash had broke itCakephp 路由:使用破折号破坏了它
【发布时间】:2012-09-03 19:42:13
【问题描述】:

我有以下 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')
                    )
    );

第一个有效,第二个无效。

我做错了什么?

谢谢!

【问题讨论】:

  • 您使用什么网址访问每个网址?
  • 一个不工作的网址的例子是“/Company-category-my-string-9/”

标签: cakephp routing


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 2017-02-24
      • 2016-10-18
      • 2020-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多