最小年龄验证laravel

时间:2017-12-06 09:23:43

标签: php laravel laravel-5

我想验证用户信息,例如出生日期,因为我在验证时使用了下面的语句行,但是我如何使其成为动态的,因此用户最低年龄可能低于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',
        ]);

3 个答案:

答案 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

相反