3

我正在为类别树使用学说扩展,并希望有如下路线:

/cat/subcat1/subcat2/subcat3

我可以定义路线,例如

/{cat}
/{cat}/{subcat}
/{cat}/{subcat}/{subcat2)
etc...

但是有没有更优雅和通用的方法来实现这一点?一个可以接受无限数量级别的系统?

4

2 回答 2

7

您可以做的是在路由参数中接受斜杠(仅适用于此路由)。它涉及您不能将任何其他参数排队,因为斜杠分隔符将被视为类别参数的一部分......

那么,如何管理路由参数中的斜线:

_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

于 2012-09-06T10:33:36.970 回答
0

我认为这些链接可能是相关的:

https://github.com/symfony-cmf/RoutingBundle

url 中的类别树

于 2014-04-10T23:36:03.440 回答