Symfony2:twitch中的form_widget调用抛出异常"可捕获的致命错误..必须是Symfony



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

$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\Form的实例,给定的Symfony\Component\ Form\Form实例,在…中调用"

如何解决此问题?

您必须将SymfonyComponentFormFormView的实例而不是SymfonyComponentFormForm传递给视图。

使用修复此问题。。。

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

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

在控制器中:

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

但如果你想把它发送到视图,这是一个标准的例子:

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

最新更新