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

时间:2013-11-19 19:59:23

标签: php forms symfony-2.3

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

http://symfony.com/doc/current/cookbook/form/form_customization.html#customizing-error-output

“您还可以为一个特定字段类型自定义错误输出。例如,某些对表单更全局的错误(即不仅仅针对一个字段)将单独呈现,通常位于表单顶部......“

他们接着说:

“要仅自定义用于这些错误的标记,请按照上述相同的说明进行操作,但现在调用block form_errors”

我很困惑他们在谈论什么。似乎他们之前的指令已经调用了块“form_errors”,所以我不确定有什么不同。

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

1 个答案:

答案 0 :(得分:1)

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

这是我的块看起来的样子:

{% 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。这让我的样式略有不同,具体取决于它们是出现在页面顶部还是出现在输入上方。如果需要,您还可以将它们完全分开。