我想迭代表单中的所有字段,并通过不匹配显示错误(验证)消息。我使用以下代码,它适用于直接位于表单对象中的所有字段。对于位于子表单/合并表单中的所有字段,此解决方案不起作用。
</table>
<div style=" height:180px; overflow:auto;">
<table class="neo-table">
<tbody>
{% for children in form.children %}
{% if children.vars.errors is defined %}
{% for error in children.vars.errors %}
<tr>
<td>
<strong> {{ error.message }}</strong>
</td>
</tr>
{% endfor %}
{% endif %}
{% endfor %}
</tbody>
</table>
图片应该澄清问题:
我收到所有字段的错误消息,这些字段以前缀fu1开头但不来自前缀为ses f.e字段sesOccupationMother2的字段。
当我使用这段代码时,我也没有得到信息:
{{form_errors(form.fu1KfPatientid.bSes)}}
或类似的东西:
{{form_errors(form)}}
当我从字段中写下FQN时,我只是获取信息:
{{form_errors(form.fu1KfPatientid.bSes.sesOccupationMother2)}}
这种行为的原因是什么?有人知道一个技巧,我如何使用我的函数并使用子表单迭代错误?
感谢您的支持!
答案 0 :(得分:0)
所以现在我写了一个函数,它看起来不太好但是有效。
{% for children in form.children %}
{% if children.vars.errors is defined %}
{% for error in children.vars.errors %}
<tr>
<td>
<strong> {{ error.message }}</strong>
</td>
</tr>
{% endfor %}
{% endif %}
{% for children in children.children %}
{% if children.vars.errors is defined %}
{% for error in children.vars.errors %}
<tr>
<td>
<strong> {{ error.message }}</strong>
</td>
</tr>
{% endfor %}
{% endif %}
{% for children in children.children %}
{% if children.vars.errors is defined %}
{% for error in children.vars.errors %}
<tr>
<td>
<strong> {{ error.message }}</strong>
</td>
</tr>
{% endfor %}
{% endif %}
{% endfor %}
{% endfor %}
{% endfor %}