【问题标题】:Combine all NotBlank error messages in Symfony2在 Symfony2 中合并所有 NotBlank 错误消息
【发布时间】:2014-02-23 07:10:10
【问题描述】:

我正在尝试将所有 NotBlank 错误消息合并为一个。

如果错误数组包含至少 1 个 NotBlank 类型的错误,我希望它只显示一条消息,例如“请填写所有字段”。

我该怎么做?

这是我的树枝代码

 {{form_start(form, {'attr': {'novalidate': 'novalidate'}})}}
    <div>
        {{form_widget(form.firstName)}}
        {{form_widget(form.lastName)}}
    </div>
    <div>
        {{form_widget(form.username)}}
        {{form_widget(form.email)}}
    </div>
    <div>
        {{form_widget(form.password.first, {'attr' : { 'placeholder' : 'Password' } })}}
        {{form_widget(form.password.second, {'attr' : { 'placeholder' : 'Confirm Password' } })}}
    </div>
    <div>
        {{form_label(form.birthday)}}
    </div>
    <div>
        {{form_widget(form.birthday)}}
    </div>

    <div>
        {{form_widget(form.gender)}}
    </div>

     <div>
        {{form_widget(form.save)}}
    </div>

    {{ form_errors(form.firstName) }}
    {{ form_errors(form.lastName) }}
    {{ form_errors(form.username) }}
    {{ form_errors(form.email) }}
    {{ form_errors(form.password.first) }}

    {{form_end(form)}}

【问题讨论】:

    标签: validation symfony


    【解决方案1】:

    你可以创建一个 CallbackValidator

    http://symfony.com/doc/current/reference/constraints/Callback.html

    并在validate方法中,检查是否至少有一个所需字段为空,如果为真,则调用

    /**
     * @Assert\Callback
     */
    public function validate(ExecutionContextInterface $context)
    {
        if(empty($this->field1) || empty($this->field2)) {
            $context->addViolation($message);
        }
    }
    

    这样你会收到一个全局表单错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 2014-12-28
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多