Symfony2:form_widget树枝调用会引发异常“可捕获的致命错误...必须是 Symfony\Component\Form\FormView”

2022-08-30 19:37:56

当我在控制器内创建表单时,操作如下所示:

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

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

...我尝试在树枝模板中呈现此表单,如下所示:

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

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

在模板渲染过程中抛出了一个异常(“可捕获的致命错误:参数 1 传递给 Symfony\Component\Form\Form\FormRenderer::searchAndRenderBlock() 必须是 Symfony\Component\Form\FormView 的实例,Symfony\Component\Form\Form 的实例给定,在 ...

如何解决此问题?


答案 1

您必须将 的实例而不是传递给您的视图。Symfony\Component\Form\FormViewSymfony\Component\Form\Form

使用...

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

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


答案 2

在控制器中:

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

但是,如果要将其发送到视图,则这是一个标准示例:

return $this->render('@App/public/index.html.twig', array(
    'form'=>$form->createView()
));

推荐