我正在研究Symfony 3中的项目,我遇到了render_false的问题。
我必须做一个动态表格。表单的字段取决于对象的值。 并且有很多可能性。
我在控制器上做了所有这些处理,然后返回一个包含我必须显示的所有字段的数组。
然后,我在Twig上显示这些字段。但是,我不想渲染其余部分。
所以我使用选项:{{ form_end(form, {'render_rest': false}) }}
但是Symfony还给我了
"类型错误:传递给Bill :: setEntreeAutomateInput()的参数1必须 是字符串类型,null给定"
我的印象是Symfony在我的字段填充时为空,当它有""有可能对此进行修复?
这是我的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();
第一行失败
答案 0 :(得分:0)
如果它可以帮助某人。这不是一个干净的解决方案,但是,目前,我将使用它。
您可以使用:
<div id="divCheckbox" style="display: none;">
{{ form_rest(form) }}
</div>
它会隐藏您要隐藏的字段,并且您可以保存表单。