【问题标题】:custom error message for age validation in a form.(laravel)表单中年龄验证的自定义错误消息。(laravel)
【发布时间】:2017-05-04 06:15:59
【问题描述】:

我正在构建一个用户必须年满 18 岁或以上的表单。我尝试了一些方法但没有奏效。

在我的控制器中:

$this->validate($request,[
    'birthday' => 'required|date|before:-18 years',
]);

在request.php中:(通过互联网搜索)

abstract class Request extends FormRequest
{
    public function messages()
    {
        return [

            'birthday.before' => 'You must be 18 years old or above',
        ];
    }
}

【问题讨论】:

标签: php laravel laravel-5.2


【解决方案1】:

其实我对你的问题不是很清楚。 如果您想要自定义验证前的消息,请转到 resources/lang/en/validation.php 并在

处进行更改
'custom' => [
    'attribute-name' => [
        'rule-name' => 'custom-message',
    ],
],

希望对您有所帮助!

【讨论】:

    【解决方案2】:

    您可以根据日期计算年龄,然后将其验证为数字。

    或者您可以验证 18 年前的日期

    $dt = new Carbon\Carbon();
    $before = $dt->subYears(18)->format('Y-m-d');
    
    $rules = [
         'dob' => 'required|date|before:' . $before
    ];
    

    或者您可以扩展验证并在此答案中进行自定义:Check user's age with laravel validation rules

    【讨论】:

    【解决方案3】:

    您好,要获取您的验证错误,请将您的验证器存储在一个变量中 然后只需使用$validator->errors() 来获取它的错误

    $validator = Model::validate($request,[
        'birthday' => 'required|date|before:-18 years',
    ]);
    $errors = $validator->errors();
    echo "You error in birthday: ".$errors->get('birthday')[0];
    

    【讨论】:

      猜你喜欢
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      • 2020-02-26
      • 2017-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      相关资源
      最近更新 更多