我正在Symfony3中处理一个项目,我对render_false有一个问题。
我得做一个动态表单。窗体的字段将取决于对象的值。而且有很多可能性。
我在控制器上进行所有这些处理,并返回一个数组,其中包含我必须显示的所有字段。
然后,我在Twig上显示那些字段。但是,我不想把剩下的。因此我使用了以下选项:{{form_end(form,{'render_rest':false})}}
但是Symfony回报我
“类型错误:传递给Bill::SetentreeAutomateInput()的参数%1的类型必须为string(给定null)”
我的印象是Symfony在我的字段为“”时用null填充,有可能对此进行补救?
这是我的edit.html.twig:
{{ form_row(form.save, {'attr': {'class': 'ui button'}}) }}
{{ form_widget(form._token) }}
{{ form_end(form, {'render_rest': false}) }}
非常感谢大家
编辑:如果我使用
{{ form_rest(form) }}
它工作,但当然,这不是我想做的,因为它显示所有的字段
编辑2:如果可以帮助,在调试器中,当我尝试用以下方法提交请求时,控制器失败:
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
$em = $this->getDoctrine()->getManager();
$em->persist($bill);
$em->flush();
它在第一行失败
如果它能帮助某人。这不是一个干净的解决方案,但目前,我将使用它。
您可以使用:
<div id="divCheckbox" style="display: none;">
{{ form_rest(form) }}
</div>
它将隐藏您想要隐藏的字段,并且您将能够保存您的表单。