【问题标题】:Optional prefix for route in Symfony2Symfony2 中路由的可选前缀
【发布时间】:2014-01-01 07:21:59
【问题描述】:

我希望这些 URL 都匹配同一个控制器:

/
/7
/articles
/articles/
/articles/7

是否可以在 symfony 的路由中添加可选的 prefix 以便 article 前缀是可选的?
如何?

【问题讨论】:

  • 删除了我的答案,因为这不起作用。只需尝试复制路线即可。
  • 我会重新考虑这一点,为一个控制器使用多个完全不同的路由会使您的应用程序非常冗长。我会决定我选择哪一个。如果您需要使用以前的应用程序或其他应用程序,可能会添加重定向到另一个应用程序

标签: php symfony routing url-routing


【解决方案1】:

您可以创建 2 个指向同一个控制器的路由:

acme_article_prefix:
    path: /articles/{id}
    requirements:
        id: \d+
    defaults: { id: 5 }

acme_article:
    path: /{id}
    requirements:
        id: \d+
    defaults: { id: 5 }

另一种选择是将前缀也设为占位符:

acme_article:
    path: /{_prefix}/{id}
    defaults: { _prefix: articles, id: 5 }
    requirements:
        id: \d+
        _prefix: articles

对于框架,有一个补丁很久了,可以实现/(articles/){id}这样的路由,会匹配你上面设置的urks。

【讨论】:

  • /(articles/){id} 不起作用;但使用两条路线可行,谢谢
  • @4r1y4n 它将在未来工作:) (这就是为什么我说“有一个补丁”,它还没有实现)
猜你喜欢
  • 1970-01-01
  • 2015-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
  • 2018-01-08
  • 1970-01-01
相关资源
最近更新 更多