Symfony2を使用して、正規表現を使用して単一のコントローラーアクションに複数のURLパターンを定義できるので、複数のルールを定義する必要はありませんか?前もって感謝します
要件のあるプレースホルダーを意味しますか?
blog:
pattern: /blog/{page}
defaults: { _controller: AcmeBlogBundle:Blog:index, page: 1 }
requirements:
page: \d+
ここでは、プレースホルダーによって定義された複数のルートがあり、同じコントローラーアクションに向かう正規表現によって検証されています。
編集:
URLの各部分をプレースホルダーにすることができます。
blog:
pattern: /{type}/{page}
defaults: { _controller: AcmeBlogBundle:Blog:index, page: 1 }
requirements:
type: blog|articles
page: \d+
注釈を使用する場合、複数のルートを定義できます。そのように:
/**
* @Route ("item1")
* @Route ("item/2")
* @Method("GET")
*/
public function itemAction() {
}
バージョン2.0.9を使用しています
パラメータを使用したルートの注釈の例:
/**
* @Route("/shops/{page}", name="shops")
* @Route("/shops/town/{town}/{page}", name="shops_town")
* @Route("/shops/department/{department}/{page}", name="shops_department")
*/
public function shopsAction(Town $town = null, Department $department = null, $page = 1)
{ ... }
次に、次のようにtwigでルートを生成します:
{{ path('shops_town') }}
または
{{ path('shops_town', {'town': town.id}) }}
または
{{ path('shops_department', {'department': department.id}) }}