【问题标题】:Symfony2 routing repeating patternSymfony2 路由重复模式
【发布时间】:2012-12-03 04:01:35
【问题描述】:

我有一个可以接受任意数量参数但顺序不完全相同的 URL。例如

example.com/myapp/service1/username1/service2/username2

example.com/myapp/service2/username2/service1/username1

example.com/myapp/service7/username7

我如何编写一个循环 yml 条目来捕获任何这些路由,以便我可以将它们拆分为服务/用户名,例如 array("service" => "Instagram", "username" => "JoBloggs") 或传递给 URL 的数量。

我可以访问大约 30 项服务的预制列表,但用户名几乎可以是任何值。

我什至不确定如何问这个问题,所以我会提供任何有用的额外信息。

理想情况下,我想避免像example.com/myapp/?service1=username1&...这样的东西

【问题讨论】:

  • 我认为最好问问自己为什么网址可以按任何顺序排列。 URL 的一致性对您的 SEO、可用性和代码更好..."A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools." -Douglas Adams
  • @WouterJ SEO 不是必需的,这些是用于演示产品的临时 URL。这几乎就像通过 GET 请求提交表单,只是无需先填写表单。

标签: symfony routing


【解决方案1】:

似乎我可以在 URL Slash in parameter 的末尾添加全部模仿捕捉

route_name:
    pattern: /myapp/{services}
    defaults: { _controller: bundle.controller.homepage:index }
    requirements:
        services: ".+"

【讨论】:

  • 这将是您最好的选择。只需在控制器中用“/”分割 $services 并根据需要找出 key=val 对。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-19
  • 2011-07-18
  • 2012-10-18
  • 1970-01-01
相关资源
最近更新 更多