次のようにコントローラーアクション内にフォームを作成すると、
$form = $this->createFormBuilder()
->add('field_name')
->getForm();
return array(
'form' => $form
);
...そして私はこのフォームをtwigテンプレートでこのようにレンダリングしようとします:
<form action="{{ path('...') }}" method="post">
{{ form_widget(form.field_name) }}
</form>
... form_widget
を呼び出すと、次の例外/エラーが発生します。
テンプレートのレンダリング中に例外がスローされました(「キャッチ可能な致命的エラー:Symfony\Component\Form\FormRenderer :: searchAndRenderBlock()に渡される引数1は、Symfony\Component\Form\FormViewのインスタンスであり、Symfony \のインスタンスである必要があります。 Component\Form\Formが指定され、で呼び出されます...
この問題を解決するにはどうすればよいですか?
ビューにSymfony\Component\Form\FormView
ではなくSymfony\Component\Form\Form
のインスタンスを渡す必要があります。
これを使用して修正...
... ->getForm()->createView();
FormBuilder::getForm
はFormオブジェクトを作成します... Form::createView
はFormViewオブジェクトを作成します。
コントローラ内:
return array(
'form' => $form->createView()
);
しかし、それをビューに送信したい場合、それは標準的な例です。
return $this->render('@App/public/index.html.twig', array(
'form'=>$form->createView()
));