0

バンドルに次のルートがあります

/{category}

そして、名前付きのカテゴリがあります

Category/Brand

URL が次のような場合:

domain.com/Company/Brand

次に、/ シンボルについてエラー 500 が発生します。

しかし、小枝で私がするなら

company.name|url_encode()

それから私は得る

Company%2F%Brand

(コードが間違っている可能性があります。今は覚えていません)

それにもかかわらず、Symfonyはルートマッチングがないと私に言います

そして私に404を与えます。

どうすればこの問題を解決できますか?

4

3 に答える 3

1

あなたのカテゴリ名はすべてそのようなものですか、それとも一部ですか?

それらすべてがこの構造に従っている場合、ルートを次のように変更できます。

/{company}/{brand}

また、対応するコントローラーを変更して、1 つではなく 2 つの変数を受け入れるようにします。後でそれらを連結したり、必要なことをしたりできます

それらの一部のみがこの構造を持っている場合は、ディレクトリセパレーターを、リンクを作成するコントローラーの文字の組み合わせに置き換えてから、このルートのコントローラーでこの置換を元に戻すことができます。たとえば、リンクが表示されているテンプレートのコントローラーでは、次のことができます。

$nameEncoded = str_replace ('/','%%%%',$companyName);

この変数をテンプレートに渡し、それを使用してリンクを生成し、受信コントローラーで次のようにします。

$nameDecoded = str_replace ('%%%%','/',$companyName);
于 2012-07-30T21:18:05.167 に答える
0

Ok!

ここで解決策を見つけました。

    #出版URL
    ####出版物:
        パターン: /{username}/{category}/{publicationid}
        デフォルト: { _controller: ###:Default:publication }
        要件:
          _メソッド: GET
          カテゴリ: .+
          ユーザー名: .+
          出版物 ID: \d+                               
    #CATEGORY - 他のすべての URL と一致するように、最後にある必要があります
    ###_カテゴリー:
        パターン: /{カテゴリ}
        defaults: { _controller: ###:Default:category }
        要件:
          _メソッド: GET
          カテゴリ: .+


于 2012-07-31T10:57:13.477 に答える
0

ルートが /{category} で、入力した URL が domain.com/Company/Brand の場合、エラーは正常です。

次のように routing.yml でルートを構成する必要があります。

Company/{category}
于 2012-07-30T18:56:18.990 に答える