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