21

次のようにコントローラーアクション内にフォームを作成すると:

$form = $this->createFormBuilder()
    ->add('field_name')
    ->getForm();

return array(
    'form' => $form
);

...そして、このフォームを次のような小枝テンプレートでレンダリングしようとします:

    <form action="{{ path('...') }}" method="post">
        {{ form_widget(form.field_name) }}
    </form>

...form_widget呼び出しにより、次の例外/エラーが生成されます。

テンプレートのレンダリング中に例外がスローされました ("Catchable Fatal Error: Argument 1 passed to Symfony\Component\Form\FormRenderer::searchAndRenderBlock() must be an instance of Symfony\Component\Form\FormView, instance of Symfony\コンポーネント\フォーム\フォームが与えられ、呼び出されます...

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

51

Symfony\Component\Form\FormViewビューの代わりに のインスタンスを渡す必要がありますSymfony\Component\Form\Form

...を使用してこれを修正します

... ->getForm()->createView();

FormBuilder::getFormFormオブジェクトを構築し、次にFormViewForm::createViewオブジェクトを作成します。

于 2013-07-10T02:45:08.667 に答える