Laravel 5:如何在validate()中插入错误自定义消息数组

时间:2015-03-05 17:43:52

标签: validation laravel laravel-5

我想在验证函数中插入验证自定义消息,如下所示:

public function postLogin(Request $request)
    {
        $rulesemail=['required'=>'Este campo es requerido.'];
        $rulespassword=['min'=>'Debe teclear al menos :min caracteres','required'=>'Favor de teclear su contraseña'];
        $this->validate($request, [
            'email' => 'required|email|max:60', 'password' => 'required|min:6'],$rulespassword
        );

但我无法让它发挥作用。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您不能使用validate()特征中的默认ValidatesRequests

但是,您可以覆盖基本控制器中的功能以更改:

public function validate(Request $request, array $rules, array $messages = array())
{
    $validator = $this->getValidationFactory()->make($request->all(), $rules, $messages);

    if ($validator->fails())
    {
        $this->throwValidationException($request, $validator);
    }
}

然后只需将自定义消息作为第三个参数传递:

$rulesemail=['required'=>'Este campo es requerido.'];
$messages=['min'=>'Debe teclear al menos :min caracteres','required'=>'Favor de teclear su contraseña'];
$this->validate($request, [
    'email' => 'required|email|max:60',
    'password' => 'required|min:6'
], $messages);

请记住,您还可以在语言文件中globally define validation messages。此文件通常位于resources/lang/xx/validation.php

答案 1 :(得分:0)

validate()方法接受3个参数:

请求$ request,[$ errors],[$ messages]

以下是如何为验证条件自定义错误消息的示例:

    $this->validate(
        $request,
        [
            'first_name'=> 'required',
            'last_name'=> 'required',
            'email' => 'email',
            'date_of_birth' => 'date_format:"Y-m-d"'
        ],
        [
            'date_format' => 'DOB'
        ]
    );

PHPStorm提供了有用的工具提示,可以立即查看方法选项。