Маршрутизация для дерева категорий

Я использую расширение доктрины дерева для дерева категорий и хотел бы иметь такие маршруты, как:

/cat/subcat1/subcat2/subcat3 

Я могу это сделать, определяя маршруты вроде

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

Но есть ли более элегантный и общий способ реализации этого? Система, которая может принимать неограниченное количество уровней?

Что вы можете сделать, это принять косые черты в параметрах маршрутизации (только для этого маршрута). Это связано с тем, что вы не можете ставить в очередь любой другой параметр, поскольку разделитель косой черты будет рассматриваться как часть параметра категории …

Итак, как управлять косой чертой в параметре маршрутизации:

 _hello: pattern: /category/{category} defaults: { _controller: AcmeDemoBundle:Demo:category } requirements: category: ".+" 

Calling /category/cat1/sub1/sub2 вызовет DemoController::categoryAction($category) с 'cat1 / sub1 / sub2' в качестве параметра $ category. Просто используйте свой собственный код для декодирования!

Пример кода, найденный в официальном документе: http://symfony.com/doc/2.0/cookbook/routing/slash_in_parameter.html

Я думаю, что эти ссылки могут быть связаны:

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

Дерево категорий в URL-адресе