Symfony 2渲染表单错误与表单字段无关

时间:2015-09-25 16:16:01

标签: php forms symfony twig

现在我的错误主题看起来像这样:

{% form_theme form _self %}
{% block form_errors %}
    {% for child in form %}
        {% for error in child.vars.errors %}
            <div class="alert alert-danger fade in margin-bottom-40">
                <h4>{{ child.vars.label|trans }}</h4>
                {{ error.message|trans }}
            </div>
        {% endfor %}
    {% endfor %}
{% endblock form_errors %}

这是好的,直到我将错误添加到整个实体,而不是特定字段。我的验证器正在做这样的事情:

$this->context->buildViolation($constraint->message)
              ->addViolation();

然后显示错误消息,显而易见。

我想要做的是是保持显示与字段相关的错误的当前架构,并为整个实体/表单添加类似于错误的内容。你们有什么想法吗?

1 个答案:

答案 0 :(得分:1)

由于您正在添加将违规行为添加到实体本身,因此它将放在根表单上,因此请输入以下内容:

{% for errors in form.vars.errors %}
<div class="alert alert-danger fade in margin-bottom-40">
      {{ error.message|trans }}
</div>
{% endfor %}

在为表单的子项呈现错误之前。