27

単一の Symfony ルーティングで複数のパターンを作成するには?

通常、次のようなルーティングがあります

blog:
    pattern:   /
    defaults:  { _controller: AcmeBlogBundle:Blog:index, page: 1 }

2 つのルーティング パターンを持つことは可能ですか?

何かのようなもの

blog:
    #Below pattern to match with '/' or '/index'    
    pattern:   {/ , /index}  
    defaults:  { _controller: AcmeBlogBundle:Blog:index, page: 1 }
4

4 に答える 4

31

Symfony2 を使用していますか? ルーティングに yml や xml の代わりにアノテーションを使用できる場合は、次の行に沿って複数のルートを定義することができます。

/**
* @Route("/");
* @Route("/home");
*/

その後、アクション メソッドを複製する必要はありません。

于 2012-07-06T14:10:28.230 に答える
27

最も簡単な方法は、ブロックを複製して 2 つのルートを作成することです。

blog:
    pattern:   /
    defaults:  { _controller: AcmeBlogBundle:Blog:index, page: 1 }

blog_index:
    pattern:   /index
    defaults:  { _controller: AcmeBlogBundle:Blog:index, page: 1 }

したがって、必要に応じてパスで両方を使用する可能性があります。

ここでは、ルーティングで正規表現を使用する方法についての別の投稿を見ることができます。おそらく、インデックスが設定されているかどうかをチェックする簡単な正規表現を書くことができます。

編集:

私が好むアノテーションを使用する場合は、コントローラーのアクション メソッドに複数のルートを書き込むことができます。このようなもの:

/**
* @Route("/");
* @Route("/home");
*/
于 2012-07-06T13:45:56.950 に答える