3

カテゴリツリーにTreedoctrine拡張機能を使用しており、次のようなルートが必要です。

/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/sub2DemoController::categoryAction($category)、$categoryパラメーターとして「cat1/ sub1/sub2」を指定してメソッドが呼び出されます。独自のコードを使用してデコードしてください!

公式ドキュメントにあるコードサンプル: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 に答える