如何迭代 Twig 中的子表单以显示验证错误?

How to iterate over subforms in Twig to display validation errors?

我想遍历表单中的所有字段并通过不匹配显示错误(验证)消息。我使用以下代码,它适用于直接位于表单对象中的所有字段。对于位于子表单/合并表单中的所有字段,此解决方案是否不起作用。

</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 的字段中 不是 字段 sesOccupationMother2.

我在使用这段代码时也没有得到信息:

{{form_errors(form.fu1KfPatientid.bSes)}}

或类似的东西:

{{form_errors(form)}}

我只是 得到 当我从字段中写下 FQN 时的信息是这样的:

{{form_errors(form.fu1KfPatientid.bSes.sesOccupationMother2)}}

这种行为的原因是什么?有人知道如何使用我的函数并迭代子表单的错误吗?

感谢支持!

所以现在我写了函数,它看起来不太好,但它可以工作。

{% 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 %}