Symfony2:twig中的form_widget调用抛出异常"可捕获的致命错误......必须是Symfony\Component\Form\FormView的实例"

Maj*_*ons 20 php forms symfony twig

当我在我的控制器动作中创建一个表单时,如下所示:

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

return array(
    'form' => $form
);
Run Code Online (Sandbox Code Playgroud)

...我尝试在这样的树枝模板中渲染此表单:

    <form action="{{ path('...') }}" method="post">
        {{ form_widget(form.field_name) }}
    </form>
Run Code Online (Sandbox Code Playgroud)

... form_widget调用产生以下异常/错误:

在渲染模板期间抛出异常("Catchable Fatal Error:传递给Symfony\Component\Form\FormRenderer :: searchAndRenderBlock()的参数1必须是Symfony\Component\Form\FormView的实例,Symfony的实例\给出的Component\Form\Form,在...中调用

我该如何解决这个问题?

Nic*_*ich 50

您必须传递一个实例Symfony\Component\Form\FormView而不是Symfony\Component\Form\Form您的视图.

用...修复此问题

... ->getForm()->createView();
Run Code Online (Sandbox Code Playgroud)

FormBuilder::getForm构建Form对象... Form::createView然后创建一个FormView对象.