我对类别树使用Tree学说扩展,并希望有以下路由:
/cat/subcat1/subcat2/subcat3
我可以定义像
这样的路线/{cat}
/{cat}/{subcat}
/{cat}/{subcat}/{subcat2)
etc...
但有没有更优雅和一般的实现方式?一个可以接受无限数量级别的系统?
答案 0 :(得分:7)
您可以做的是接受路由参数中的斜杠(仅适用于此路线)。它涉及到您不能将任何其他参数排队,因为斜杠分隔符将被视为类别参数的一部分......
那么,如何在路由参数中管理斜杠:
_hello:
pattern: /category/{category}
defaults: { _controller: AcmeDemoBundle:Demo:category }
requirements:
category: ".+"
调用/category/cat1/sub1/sub2
将使用'cat1 / sub1 / sub2'作为$ category参数调用DemoController::categoryAction($category)
方法。只需使用您自己的代码进行解码!
在官方文档http://symfony.com/doc/2.0/cookbook/routing/slash_in_parameter.html
上找到的代码示例答案 1 :(得分:0)