シンプルなケース。私のすべてのアプリではrouting.yml
、次のように定義された Route アノテーション ドライバーを使用しています。
MyBundle:
resource: "@MyBundle/Controller/"
type: annotation
prefix: /someprefix
MyBundle の Ctrl コントローラーのアクションは次のようになります。
@Route("/{page}/{status}", name="default_action", defaults={"page" = 1, "status" = "ok"}, requirements={"page" = "\d+"})
public function defaultAction($page, $status) {...}
ここで、このアクションを作成したいと思います-私のWebページにアクセスしたときのデフォルトアクション。@Route("/")
プレフィックスだから使えない。だから私はに追加していrouting.yml
ます:
_welcome:
pattern: /
defaults: { _controller: MyBundle:Ctrl:default }
そして、問題が始まる場所があります - Symfony2 はアノテーションからではなくアクションからだけデフォルトのコントローラーアクションを呼び出しており、エラーが発生します:
Controller "...:defaultAction()" requires that you provide a value for the "$page" argument (because there is no default value or because there is a non optional argument after this one).
したがって、単純に Symfony2 は @Route アノテーションからデフォルト値を取得していません。
質問: _welcome
@Route を認識しているルートを呼び出す方法は?