在 Symfony2 中合并所有 NotBlank 错误消息 [英] Combine all NotBlank error messages in Symfony2

查看:18
本文介绍了在 Symfony2 中合并所有 NotBlank 错误消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

我该怎么做?

这是我的树枝代码

 {{form_start(form, {'attr': {'novalidate': 'novalidate'}})}}<div>{{form_widget(form.firstName)}}{{form_widget(form.lastName)}}

<div>{{form_widget(form.username)}}{{form_widget(form.email)}}

<div>{{form_widget(form.password.first, {'attr' : { 'placeholder' : 'Password' } })}}{{form_widget(form.password.second, {'attr' : { 'placeholder' : 'Confirm Password' } })}}

<div>{{form_label(form.birthday)}}

<div>{{form_widget(form.birthday)}}

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

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

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

解决方案

您可以创建一个 CallbackValidator

http://symfony.com/doc/current/reference/constraints/回调.html

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

/*** @Assert\Callback*/公共函数验证(ExecutionContextInterface $context){if(empty($this->field1) || empty($this->field2)) {$context->addViolation($message);}}

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

I'm trying to combine all NotBlank error messages into one.

If the error array contains at least 1 error that is a NotBlank type, I want it to display only one message like "Please fill in all fields."

How can I do this?

Here's my twig code

 {{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)}}

解决方案

You can create a CallbackValidator

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

and in the validate method, check if at least one of the desired fields is blank, and if true, call

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

This way you will receive a global form error.

这篇关于在 Symfony2 中合并所有 NotBlank 错误消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
其他开发最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆