2011-12-06 5 views
15

私は問題が発生し、次があります。シンプルなアクションとsymfonyの2:小枝のパスでの注釈で定義されたルートは見えない()

DefaultController:私の小枝テンプレートで

/** 
* @Route("/register") 
* @Template 
*/ 
public function indexAction() { 
    $oForm = $this->createForm(new RegisterType()); 
    return array(
     'form' => $oForm->createView() 
    ); 
} 

私がしよう

<form action="{{ path('register') }}" method="post"></form> 

をしかし、私は次のエラーを取得する:使用する

An exception has been thrown during the rendering of a template ("Route "register" does not exist.") in EBTSCustomerBundle:Default:index.html.twig at line 2. 

私は明示的にアプリ/設定/ routing.ymlでルートを "登録" を定義:

register: 
    pattern: /register 
    defaults: { _controller: EBTSCustomerBundle:Controller:Default:index } 

そして、それが正常に動作します。それについて合理的なドキュメントを見つけることができません、私は、アプリケーション全体で注釈によって定義されたルートが見えるはずだと思いました。

どのようなアイデアですか?注釈による

答えて

33

ルートはまだそれほどとしてのrouting.ymlにインポートする必要があります

AcmeHelloBundle: 
    resource: "@AcmeHelloBundle/Controller" 
    type: annotation 

これはAcme\HelloBundleControllerディレクトリをスキャンし、すべてのルートをインポートするために、ルーティングを教えてくれます。

ルーティングに関する詳細情報は、hereです。そのリンクは、上に示したようにルートをアクティブにする方法も教えてくれます。助け

@Route("/register", name="register") 

希望:

また、私はそれ以外の場合はacme_bundlename_controllername_actionnameを介してアクセスすると思いますpath機能を使用してregisterを通して、あなたのルートの注釈がアクセスできるようにnameパラメータを必要としていることに気づきました!

+1

申し訳ありませんが、私の前のメモでは、私のバンドルからのルートは(リソース:@AcmeHelloBundle ...)書きましたがインポートされましたが、私の注釈の名前= "register" 。あなたのご意見ありがとうございました。本当に助かりました! – mkrowiarz

+0

あなたの人生のいくつかの年を救ってくれてありがとう:) – GorillaApe

+0

http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/routing.html – Mike

関連する問題