如何自定义symfony 2.3中的全局表单错误


How do I customize the global form errors in symfony 2.3?

Symfony 2.3文档表示,可以自定义全局表单错误(出现在表单顶部但与特定字段无关的错误)。

http://symfony.com/doc/current/cookbook/form/form_customization.html#customizing-错误输出

"您也可以只为一种特定的字段类型自定义错误输出。例如,某些对表单更全局的错误(即不特定于一个字段)会单独呈现,通常在表单顶部…"

他们接着说:

"要只自定义用于这些错误的标记,请按照上面的指示进行操作,但现在调用块form_errors"

我对他们在说什么感到困惑。他们之前的指令似乎已经将块称为"form_errors",所以我不确定有什么不同。

如何仅自定义全局表单错误(单个表单字段错误应保持不变)?

该页的措辞令人困惑。我也读了几遍,感觉应该有更多的信息。提供的示例显示了如何检查错误是"复合"错误(针对整个表单)还是仅针对单个字段的错误。

我的区块是这样的:

{% block form_errors %}
    {% if errors|length > 0 %}
        <ul class="alert alert-warning {% if compound %}formError{% else %}formInputError{% endif %}">
            {% for error in errors %}
                <li>{{ error.message }}</li>
            {% endfor %}
        </ul>
    {% endif %}
{% endblock form_errors %}

如果它是一个复合形式,它将类呈现为formError,如果它只是用于输入,它将呈现formInputError。让我对它们进行稍微不同的样式设置,这取决于它们是出现在页面顶部还是出现在输入上方。如果需要,您也可以将它们完全分离为HTML。