0
    /**
     * @Assert\True(message = "手机号格式不正确")
     */
    public function isPhoneLegal    ()
    {
        if (!preg_match('/^1[0-9]{10}$/', $this->phone)) {
            return false;
        }
        return true;
    }

如上在Entity中写了一个Getter的方法来检验手机号,按我的逻辑来这个方法的错误消息应该属于字段为phone的表单项。但是实际上是属于整个表单的错误

这个给我造成许多困扰,我在twig中重构了errors,如下:

    {# 重构errors样式 #}
    {% form_theme form _self %}
    {%- block form_errors -%}
        {%- if errors|length > 0 -%}
            <div class="am-alert am-alert-danger" style="">
                {%- for error in errors -%}
                    {{ error.message }}
                {%- endfor -%}
            </div>
        {%- endif -%}
    {%- endblock form_errors -%}

这样子会直接在页面输出整个表单的错误。如下:

求大神解决方法,拜谢

撰写答案

相似问题