Symfony 3 - render_false表单不起作用

时间:2018-02-27 13:34:42

标签: symfony

我正在研究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();

第一行失败

1 个答案:

答案 0 :(得分:0)

如果它可以帮助某人。这不是一个干净的解决方案,但是,目前,我将使用它。

您可以使用:

  <div id="divCheckbox" style="display: none;">
         {{ form_rest(form) }}
    </div>

它会隐藏您要隐藏的字段,并且您可以保存表单。