如何在每个级别的Symfony2中选择路由参数

时间:2014-08-01 20:09:21

标签: php symfony routing optional

我们正在将旧的硬编码网站重写为基于Symfony2框架的新网站。

由于搜索引擎,我们需要在网址中保留旧模式。我们的实际网址是:

  • 使用domain.tld /类别/
  • 使用domain.tld /类别/子类别/

这不是问题,但现在是真正可选的参数:

  • 我们在全文搜索中有一些导航器,例如:locality,form,type,length
  • 所有导航员都必须像'漂亮的网址'
  • url中的每个导航器必须位于一个位置(不重复)

意思是:

  • domain.tld / category / subcategory / locality-prague / form-daily / type -a / length-2 /< - 这是完整的('a'或'2'仅作为示例)

但所有部分都是可选的,正确的网址示例:

  • 使用domain.tld /类别/形式每日/
  • 使用domain.tld /类别/子类别/类型-A /长度-2 /
  • 使用domain.tld /类别/局部性布拉格/长度-2 /

错误网址的示例:

  • domain.tld / category / length-2 / locality-prague /< - url的混合部分(长度在地方之前)

所以...有没有优雅的解决方案如何解决Symfony2中每个slug位置的可选参数?

我将如何在Nette Framework中执行此操作:

/[<category [a-z]>/][<subcategory [a-z]>/][locality-<locality [a-z]>/][form-<form [a-z]>/][type-<type [a-z]>/][length-<length [a-z]>/]

[] - 这意味着可选,它将正确匹配

0 个答案:

没有答案