Symfony2で以下のような長いメッセージが出た。
「An exception has been thrown during the rendering of a template (“Catchable Fatal Error: Argument 1 passed to Symfony\Bridge\Twig\Extension\FormExtension::renderEnctype() must be an instance of Symfony\Component\Form\FormView, instance of Symfony\Component\Form\Form given, called in /home/hogehoge/public_html/tktrac/app/cache/dev/twig/0d/b0/d0d2471ad7f6a6682661da92cbba.php on line 36 and defined in /home/hogehoge/public_html/tktrac/vendor/symfony/src/Symfony/Bridge/Twig/Extension/FormExtension.php line 110”) in MyTktracBundle:Default:edit.html.twig at line 5. 」
原因は、テンプレートにフォームオブジェクトをそのまま渡し、
それをテンプレート側で使おうとしたからでした。
テンプレートに渡す際は、フォームオブジェクト自身ではなく、
フォームオブジェクトのcreateView()メソッドの結果を渡しましょう
1 2 3 4 |
return $this->render('MyBlogBundle:Default:edit.html.twig', array( 'post' => $post, 'form' => $form, )); |
1 2 3 4 |
return $this->render('MyBlogBundle:Default:edit.html.twig', array( 'post' => $post, 'form' => $form->createView(), )); |