有没有办法在symfony2中向多个路径添加违规?

时间:2015-12-11 19:00:40

标签: php symfony constraints custom-validators

是否可以向多个路径添加违规?像:

$this->context->buildViolation($constraint->message)
                    ->atPath('initialDate')
                    ->atPath('finalDate')
                    ->addViolation();

它只会添加到initialDate

1 个答案:

答案 0 :(得分:4)

您仍然可以在第二个

上添加两个带有空消息的违规
$this->context->buildViolation($constraint->message)
    ->atPath('phone')
    ->addViolation()
;
$this->context->buildViolation('')
    ->atPath('email')
    ->addViolation()
;

但您将在第二个字段中生成错误标记

Multiple fields violated

如果没有消息

,您也可以覆盖form_errors块以调整标记
{% block form_errors -%}
    {% if errors|length > 0 -%}
    {% if form.parent %}<span class="help-block">
    {% else %}<div class="alert alert-danger">{% endif %}
    <ul class="list-unstyled text-danger">
        {%- for error in errors if error.message -%}
            <li><span class="glyphicon glyphicon-exclamation-sign"></span>
                {{ error.message }}
            </li>
        {%- endfor -%}
    </ul>
    {% if form.parent %}</span>{% else %}</div>{% endif %}
    {%- endif %}
{%- endblock form_errors %}