我想验证用户信息,例如出生日期,因为我在验证时使用了下面的语句行,但是我如何使其成为动态的,因此用户最低年龄可能低于13.无法注册?
return Validator::make($data, [
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6',
'date_of_birth' =>'required|date|before:2011-06-08',
]);
答案 0 :(得分:1)
您可以像这样使用碳:
return Validator::make($data, [
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6',
'date_of_birth' =>'required|date|before:'.Carbon::now()->subYears(13),
]);
Ps:不要忘记添加导入use Carbon\Carbon;
。
答案 1 :(得分:1)
根据https://laravel.com/docs/5.5/validation的文档,您应该能够使用与strtotime()函数一起使用的任何有效字符串。在这种情况下,strtotime(' 13年前')是您所追求的动态日期的有效描述符。因此,以下应该有效:
return Validator::make($data, [
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6',
'date_of_birth' =>'required|date|before:13 years ago',
]);
答案 2 :(得分:1)
要检查用户的年龄至少为13岁,请使用after规则。将date_of_birth
的规则更改为
'date_of_birth' =>'required|date|after:13 years',
before
无效,因为它与after