嵌套形式和树枝显示错误
Error in nested form and twig display
我的 Twig 模板中显示错误。
这是我的带有一种嵌套形式的树枝 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>
我不想这样,因为 css 存在于 flash-errors-wrapper
class 上,所以应用了样式。
有什么想法吗?
在检查父表单是否有效的同时,您当然需要检查一个子表单是否无效。一种方法是(未经测试,可能需要一些调整):
{% 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 %}
我通常会按照 docs:
中的描述显示表单错误
{% if errors|length > 0 %}
<ul>
{% for error in errors %}
<li>{{ error.message }}</li>
{% endfor %}
</ul>
{% endif %}
我的 Twig 模板中显示错误。
这是我的带有一种嵌套形式的树枝 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>
我不想这样,因为 css 存在于 flash-errors-wrapper
class 上,所以应用了样式。
有什么想法吗?
在检查父表单是否有效的同时,您当然需要检查一个子表单是否无效。一种方法是(未经测试,可能需要一些调整):
{% 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 %}
我通常会按照 docs:
中的描述显示表单错误 {% if errors|length > 0 %}
<ul>
{% for error in errors %}
<li>{{ error.message }}</li>
{% endfor %}
</ul>
{% endif %}