以形式的年龄验证的自定义错误消息(Laravel)



我正在建立一种形式,用户必须年龄在18岁以上。我尝试了一些方法,但没有起作用。

在我的控制器中:

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

在request.php中:(通过Internet搜索)

abstract class Request extends FormRequest
{
    public function messages()
    {
        return [
            'birthday.before' => 'You must be 18 years old or above',
        ];
    }
}

实际上,我并不清楚您的问题。如果要在验证之前进行自定义消息,请转到Resources/lang/en/vary.php并在

上更改它
'custom' => [
    'attribute-name' => [
        'rule-name' => 'custom-message',
    ],
],

希望它有帮助!

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

或者您可以验证一个日期,该日期是现在的18年

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

或者您可以扩展验证并像以下答案一样进行自定义:使用Laravel验证规则检查用户的年龄

hi以使您的验证错误存储在变量中然后只需使用$validator->errors()即可获取其错误

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

最新更新