Symfony2 和 Twig 表单在 if - else 条件下的渲染
Symfony2 and Twig form rendering in if - else condition
在我的 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) }}
问题是即使我的 extras var 为 false,我也会呈现 {{ form_widget(form.description) }},不是所有其他表单字段而是在表单底部的某个地方这显然是一个错误。如何让它仅在 extras 为真时呈现,并在 extras 为假时从页面中完全消失?
谢谢。
默认情况下,所有其他表单域都会自动添加到表单末尾。它默认触发 {{ form_rest() }}
。使用此代码可防止此行为:
{{ form_end(form, {'render_rest': false}) }}
http://symfony.com/doc/current/reference/forms/twig_reference.html#form-end-view-variables
在我的 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) }}
问题是即使我的 extras var 为 false,我也会呈现 {{ form_widget(form.description) }},不是所有其他表单字段而是在表单底部的某个地方这显然是一个错误。如何让它仅在 extras 为真时呈现,并在 extras 为假时从页面中完全消失? 谢谢。
默认情况下,所有其他表单域都会自动添加到表单末尾。它默认触发 {{ form_rest() }}
。使用此代码可防止此行为:
{{ form_end(form, {'render_rest': false}) }}
http://symfony.com/doc/current/reference/forms/twig_reference.html#form-end-view-variables