我的树枝模板中显示错误有问题。
这是我的树枝,有一个嵌套形式form.pictures
:
{{ form_start(form) }}
{% if not form.vars.valid %}
<div class="flash-errors-wrapper">
{{ form_errors(form) }}
<div class="form-errors">{{ form_errors(form.pictures) }}</div>
</div>
{% endif %}
{% for formChild in form.pictures %}
<div class="child">
{% if not formChild.vars.valid %}
<div class="flash-errors-wrapper">
{{ form_errors(form) }}
<div class="form-errors">{{ form_errors(form.picture) }}</div>
<div class="form-errors">{{ form_errors(form.caption) }}</div>
</div>
{% endif %}
{{ form_widget(formChild.picture) }}
{{ form_widget(formChild.caption) }}
</div>
{% endfor %}
{{ form_end(form) }}
提交后,当子表单无效时,我的父表单也无效。 问题是它在顶部显示空div,如:
<div class="flash-errors-wrapper">
<div class="form-errors"></div>
</div>
我不希望这样,因为flash-errors-wrapper
类上存在css所以应用了样式。
有什么想法吗?
答案 0 :(得分:1)
当您检查父表单是否有效时,您当然需要检查一个子表单是否无效。一种方法是(未经测试,可能需要一些调整):
{% if not form.vars.valid %}
{% set all_childs_valid = True %}
{% for formChild in form.pictures %}
{% if not formChild.vars.valid %}
{% set all_childs_valid = False %}
{% endif %}
{% endfor %}
{% if all_childs_valid %}
<div class="flash-errors-wrapper">
{{ form_errors(form) }}
<div class="form-errors">{{ form_errors(form.pictures) }}</div>
</div>
{% endif %}
{% endif %}
答案 1 :(得分:0)
我通常会按docs:
中所述显示表单错误 {% if errors|length > 0 %}
<ul>
{% for error in errors %}
<li>{{ error.message }}</li>
{% endfor %}
</ul>
{% endif %}