类别树的路由

Car*_*dos 3 php doctrine url-routing symfony

我正在使用Tree doctrine扩展来获取类别树,并且希望拥有以下路由:

/cat/subcat1/subcat2/subcat3
Run Code Online (Sandbox Code Playgroud)

我可以这样定义路线

/{cat}
/{cat}/{subcat}
/{cat}/{subcat}/{subcat2)
etc...
Run Code Online (Sandbox Code Playgroud)

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

Alt*_*PHP 7

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

那么,如何在路由参数中管理斜杠:

_hello:
    pattern: /category/{category}
    defaults: { _controller: AcmeDemoBundle:Demo:category }
    requirements:
        category: ".+"
Run Code Online (Sandbox Code Playgroud)

调用/category/cat1/sub1/sub2将调用DemoController::categoryAction($category)带有'cat1/sub1/sub2'的方法作为$ category参数.只需使用您自己的代码进行解码!

官方文档中的代码示例:http://symfony.com/doc/2.0/cookbook/routing/slash_in_parameter.html