我正在构建一个用户必须年满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',
];
}
}
答案 0 :(得分:1)
实际上,我并不清楚你的问题。 如果您想要在验证之前自定义消息,请转到resources / lang / en / validation.php并在
更改它'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
],
希望有所帮助!
答案 1 :(得分:0)
您可以计算日期的年龄,然后将其验证为数字。
或者您可以验证日期,即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
答案 2 :(得分:0)
您好,为了获得验证错误,请将验证程序存储在变量中
然后只需使用$validator->errors()
来获取错误
$validator = Model::validate($request,[
'birthday' => 'required|date|before:-18 years',
]);
$errors = $validator->errors();
echo "You error in birthday: ".$errors->get('birthday')[0];