2012-03-27 20 views
1

を設定より規約を使用した:私はreturnの文が含まれていない場合は私は、次のSymfonyコントローラ持っSymfony2のコントローラ/ビューで

/** 
* Says thanks to the user for signing up. 
* 
* @Route("/thanks", name="user") 
* @Template() 
*/ 
public function thanksAction() 
{ 
    return $this->render('VNNPressboxBundle:User:thanks.html.twig'); 
} 

を、私は、コントローラが応答を返さなければならないというエラーを取得します。 symfonyが自分のコントローラとアクションに基づいて簡単に把握できると考えて、自分のアクションが使用する必要のあるテンプレートを手動で指定する必要があるのは面白いことです。さらに、Symfony 1.xがどのように機能したのですか?

私は何かが欠けていると想像する必要があります。 Symfony 1.xではコンベンションコンセプトよりもコンベンションを適用し、Symfony> 2.0ではそれを放棄するようなことはありません。

コントローラとアクションに基づいて使用するテンプレートをSymfonyに指示することは可能ですか?

答えて

6

何かを返す必要があります。あなたが持っていないので、あなたはレスポンスをレンダリングする@Template注釈を使用しているが、あなたはまだ(空のあなたのケースで)テンプレートのパラメータの配列を返すことがあります。@Template注釈にもっと読む

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; 

/** 
* Says thanks to the user for signing up. 
* 
* @Route("/thanks", name="user") 
* @Template() 
*/ 
public function thanksAction() 
{ 
    return array(); 
} 

ドキュメント内:http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/view.html

PS symfony 1.xとSymfony 2.xを比較しないでください。これらは2つの異なるフレームワークです。 Symfony 2は、魔法に対して明白であることを好む。

1

配列を返します。あなたの場合、それは空の配列になりますが、通常はテンプレートに渡す変数を入力します。

関連する問題