[英]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.