2013-07-01 14 views
17

呼び出すことはできませんsymfonyのコントローラembeddエラー:「/ _fragment」URIのためのコントローラは、私は私の小枝テンプレートに(ライン18)</p> <pre><code>{{ render(controller('AcmeReadingBundle:Default:newAction')) }} </code></pre> <p>とコントローラのようにレンダリングされる呼んでいる

public function newAction(Request $request) 
    { 
     $message = new Message(); 
     $form = $this->createFormBuilder($message) 
     ->add('body', 'text') 
     ->add('save', 'submit') 
     ->getForm(); 

     $form->handleRequest($request); 

     return $this->render('AcmeReadingBundle:Default:new.html.twig', array(
      'form' => $form->createView(), 
     )); 
    } 

:私はこのエラーを取得しておく

そしてnew.html.twigファイルが

{{ form(form) }} 

です

An exception has been thrown during the rendering of a template ("The controller for URI "/_fragment" is not callable.") in AcmeReadingBundle:Default:show.html.twig at line 18. 

答えて

30

解決策:テンプレート( '... new.html.twig')の代わりにコントローラ/アクションcontroller()を使用してレンダリングしようとしている

変化にごrender機能:

{{ render(controller('AcmeReadingBundle:Default:new')) }} 

予告:いいえ "...アクション" メソッド名で)


ヒント:

_fragment例外が指定されたコントローラ名に何か問題がある場合、ほとんど例外がスローされます。

コントローラ/アクション名のスペルミスにより、この例外が発生することがよくあります。


さらに読書:

this cookbook articleを見てみましょう。

+0

私はこのコードで試しましたが、同じ結果を得ています –

+0

申し訳ありませんがnewActionの代わりに新しいはずです – nifr

+0

私のコントローラは、コードサンプルのようにnewActionと呼ばれます。そして、私はそれをAcmeReadingBundleのように呼んでいます:デフォルト:アクション –

0

私は@nifrに同意します コントローラー/アクションの代わりにcontroller()を使用してテンプレート( '... new.html.twig')をレンダリングしようとしています!

にあなたのレンダリング機能を変更

{{レンダリング(コントローラ( 'AcmeReadingBundle:デフォルト:新しい'))}}

(予告:メソッド名でありません "...アクション")

Below is more if above solution is not giving you solution.

  1. チェックコントローラで定義された関数がパブリック関数である場合。私の場合、私はそれを保護したと定義しています。

おかげで、

Anirudh Sood氏。

関連する問題

 関連する問題