Twigテンプレート(18行目)でそのようなレンダリングを呼び出しています
{{ render(controller('AcmeReadingBundle:Default:newAction')) }}
そしてコントローラーは
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.
解決策:
controller/actionの代わりにcontroller()
を使用して、template( '... new.html.twig')をレンダリングしようとしています。
render
関数を次のように変更します:
{{ render(controller('AcmeReadingBundle:Default:new')) }}
(notice:メソッド名に「... Action」がありません)
ヒント:
指定されたコントローラー名に問題がある場合、ほとんどの場合、_fragment例外がスローされます。
つまり、コントローラー/アクション名のスペルミスがこの例外の理由であることがよくあります。
さらに読む:
このクックブックの記事 を見てください。
@nifrに同意します。コントローラー/アクションの代わりにcontroller()を使用してテンプレート( '... new.html.twig')をレンダリングしようとしています!
レンダリング関数を次のように変更します。
{{render(controller( 'AcmeReadingBundle:Default:new'))}}
(注意:メソッド名に「...アクション」がありません)
上記の解決策があなたに解決策を与えていない場合は、以下がより多くです。
ありがとう、
アニルード・スッド。