繁体   English   中英

Symfony2:细枝中的form_widget调用引发异常“可捕获的致命错误……必须是Symfony \\ Component \\ Form \\ FormView的实例”

[英]Symfony2: form_widget call in twig throws exception “Catchable fatal error … must be an instance of Symfony\Component\Form\FormView”

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

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

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

...,然后尝试在这样的树枝模板中呈现此表单:

    <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对象FormBuilder::getForm Form::createView然后创建一个FormView对象。

在您的控制器中:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM