0

Symfony2 でいくつかのルートをセットアップしようとしていますが、フォルダーの動的ルートをセットアップするのに苦労しています。

次を受け入れるルートを設定しようとしています: /department/sub-department/sub-sub-department/product-url.html

そのルートから必要なのは product-url だけで、残りは SEO 用です。私が抱えている問題は、ルートの URL に多くの部門レベルが含まれている可能性があるため、product-url の前にあるものをすべて無視する必要があることです。

ここでは「/」が問題のようです。スラッシュをエスケープする方法はありますか。

ルーティングで部門を使用しない場合は、これを使用できます。

product:
    pattern:  /{url}.html
    defaults: { _controller: CompanyBundle:System:pageRequest }

したがって、基本的には次のようなものが必要です。

product:
    pattern:  /{department}/{url}.html
    defaults: { _controller: CompanyBundle:System:pageRequest }

{部門} は、スラッシュを含む 1 つ以上の部門です。

それはまったく可能ですか?

4

2 に答える 2

1
product:
    pattern: /{url}.html
    defaults: { _controller: CompanyBundle:System:pageRequest, department: ~ }

product_department:
    pattern: /{department}/{url}.html
    defaults: { _controller: CompanyBundle:System:pageRequest }
    requirements:
        department: '[\w\d\/\-]+'
于 2012-07-09T12:42:56.947 に答える
1

クックブックにそれについての素晴らしい記事があります:

より寛容な正規表現パターンを指定して、 / をパラメーターの一部にすることを明示的に許可する必要があります。

あなたの場合、ルート定義は

product:
    pattern: /{department}/{url}.html
    defaults: { _controller: CompanyBundle:System:pageRequest }
    requirements:
        department: ".+"
于 2012-07-09T12:30:38.093 に答える