【问题标题】:Symfony 2 routing 2 similar routes but another controllersSymfony 2 路由 2 个类似的路由,但另一个控制器
【发布时间】:2015-05-11 14:52:07
【问题描述】:

我的路由有问题。 我为我的页面创建了这样的路由

@Route("/{slug}", name="cms_site")

我有另一条通往我的管理仪表板的路线,例如

@Route("/dashboard", name="dashboard_homepage")

现在,当我尝试打开 /dashboard 时,我无法打开,因为 symfony 使用“cms_site”控制器。

我该如何定义 "dashboard_homepage" /dashboard 对 cms_site 很重要吗?

【问题讨论】:

    标签: php symfony routing


    【解决方案1】:

    symfony2 中的路由是按降序查找的。所以,第一个匹配模式的路由被选中。

    像 /{slug} 这样的占位符路由必须位于路由定义的末尾。如果您更改操作的顺序或在 routing.yml 中导入路由的顺序,应该可以工作。

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      除了@pabgaran 的回答, 如果您陷入无法更改顺序的困境, 您可以强制 {slug} 不是带有要求和正则表达式的仪表板:

      /**
       * @Route("/{slug}", requirements={"slug" = "^(?!.*(dashboard)).*$"} , name="cms_site")
       */
      

      注意:在这种特殊情况下,我没有测试过正则表达式。它可能需要调整。

      【讨论】:

        猜你喜欢
        • 2017-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-30
        • 2017-03-11
        相关资源
        最近更新 更多