且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用laravel验证规则检查用户的年龄

更新时间:2023-12-03 23:36:40

RMcLeod的答案还可以,但是我建议您将其提取为自定义规则:

RMcLeod answer is OK, but I'd suggest you extracting this as a custom rule:

Validator::extend('olderThan', function($attribute, $value, $parameters)
{
    $minAge = ( ! empty($parameters)) ? (int) $parameters[0] : 13;
    return (new DateTime)->diff(new DateTime($value))->y >= $minAge;

    // or the same using Carbon:
    // return Carbon\Carbon::now()->diff(new Carbon\Carbon($value))->y >= $minAge;
});

通过这种方式,您可以在任何喜欢的年龄使用该规则:

This way you can use the rule for any age you like:

$rules = ['dob' => 'olderThan']; // checks for 13 years as a default age
$rules = ['dob' => 'olderThan:15']; // checks for 15 years etc