如何在验证中添加自定义消息


Laravel 5 - How to add custom msgs to Validation?

我想弄清楚如何快速添加Laravel 5中每个字段的错误消息。这是我得到的:

$validator = Validator::make($this->req->all(), [
'email_add' => 'required|email|max:100',
'pass' => 'required|max:20',
]);

那么我如何在这里为上面验证的每个字段直接放置消息呢?比如"你忘了邮箱地址"answers"需要输入密码"?

(如何不写一个火星探测器程序为1个简单的任务。就像工匠通常的5个东西一样,添加2个命名空间,3个中间件,5个类,7个函数,然后最后覆盖错误信息!!)


[编辑]在从下面的答案和其他堆栈的搜索中得到一些帮助后,我找到了确切的方法:

  1. 为每个字段的验证type添加消息: $validator = Validator::make($this->req->all(), [ 'email_add' => 'required|email|max:100', 'pass' => 'required|max:20', ], [ 'email_add.required' => 'The Email Address is actually required dude!', 'email_add.email' => 'The Email Address is is not a valid Email Address!' ]); ..

  2. email_add更改为Email Address,即Attribute Name,而不是为每个字段应用的每个验证编写自定义msg:Validator::make(....)->setAttributeNames( [ 'email_add'=>'Email Address', 'pass'=>'Password' ]);


谢谢你的帮助。

试试它的工作

$validator = Validator::make($this->req->all(), [
'email_add' => 'required|email|max:100',
'pass' => 'required|max:20',
]);
$messages = [
    'email_add.required'        => 'You forgot Email Address',
    'pass.required'   => 'Password is Required',
];

为此,将您的消息添加到resources/lang/xx/validation.php语言文件中的自定义数组中。

'custom' => [
    'email' => [
        'required' => 'We need to know your e-mail address!',
    ],
],

https://laravel.com/docs/5.1/validation custom-error-messages

如果您想更改特定请求的验证消息,您可以将messages方法放在相同的请求文件中,像这样

public function messages() {
   'name.required' => 'custom message',
   'email.required' => 'custom message for email',
   'email.email'   => 'custom message form email format'

}

或者如果你想把验证消息放在控制器中,只需传递第三个参数作为消息。