Laravel验证消息之前/之后

时间:2016-06-19 20:46:35

标签: validation laravel laravel-5 laravel-5.2

在Laravel中,您可以为验证者制作自定义消息。但我发现准备好的消息有点不对劲。使用beforeafter验证规则,参数的转换为strtotime,如documentation中所述。

因此,如果我设置规则'expires' => 'before:+1 year',则规则正常并且正确。但是如果用户输入了错误的值,Laravel就会打印出如下信息:

  

到期日必须是+1年前的日期

此消息对于普通客户来说非常不清楚。我预计该消息将使用strtotime进行转换。

有一种干净的方法可以打印更清晰的错误消息吗?

2 个答案:

答案 0 :(得分:0)

如果您愿意,可以使用自定义覆盖验证消息。

在Form Request类中,添加以下方法并更改消息,如下所示:

public function messages()
{
    return [
        // 'fieldname.rulename' => 'Custom message goes here.'
        'email.required' => 'Er, you forgot your email address!',
        'email.unique' => 'Email already taken m8',
    ];
}

更新

如果要更改全局消息,可以打开resources/lang/en/validation.php中的validation.php文件并在那里编辑消息。

答案 1 :(得分:0)

您可以使用AppServiceProvider.php
  并且您可以在那里编写新的验证规则,并在validation.php文件中设置错误消息   /app/Providers/AppServiceProvider.php
  /resources/lang/en/validation.php

前:

    Validator::extend('before_equal', function ($attribute, $value, $parameters) {
        return strtotime(Input::get($parameters[0])) >= strtotime($value);
    });

,消息是

    'before_equal' => 'The :attribute field is only accept date format before or equal to end date',        

请尝试此操作,您可以根据需要对其进行更改。