Symfony2和Twig在if - else条件下进行渲染

时间:2016-09-18 16:44:08

标签: php symfony symfony-forms

在我的Symfony 2应用程序中,我得到以下代码呈现表单:

{{ form_start(form) }}
 {{ form_errors(form) }}
  <div class="form-group">
     {{ form_label(form.title) }}
     {{ form_widget(form.title) }}
  </div>
  <div class="form-group">
     {{ form_label(form.message) }}
     {{ form_widget(form.message) }}
  </div>
  {% if extras == true %} //this block should be rendered only if extras var is true
    <div class="form-group">
       {{ form_label(form.description) }}
       {{ form_widget(form.description) }}
    </div>
  {% endif %}
{{ form_end(form) }}

问题是我得到了渲染{{form_widget(form.description)}},即使我的extras var为false,而不是所有其他表单字段,但在表单底部的某处显然是一个bug。如果extras为true,如何使它呈现,并且在extras为false的情况下完全从页面中消失? 谢谢。

1 个答案:

答案 0 :(得分:1)

默认情况下,所有其他表单字段会自动添加到表单的末尾。它默认触发{{ form_rest() }}。使用此代码可以防止此行为:

{{ form_end(form, {'render_rest': false}) }}

http://symfony.com/doc/current/reference/forms/twig_reference.html#form-end-view-variables