使用表中的用户出生日期列来按年龄获取用户

And*_*ter 2 laravel eloquent laravel-5.7

简要:

birthdate我的users表中有用户列.用户birthdate具有默认日期格式:Y-m-d.另外,我有自定义mutator来获取用户在User模型中的年龄.

变异器代码:

public function getAgeAttribute($value) {
    if($this->birthday !== null) {
        $bday = new \DateTime("{$this->birthday}");
        $today = new \Datetime(date('Y-m-d'));
        $diff = $today->diff($bday);

        return $diff->y;
    }

    return null;
}
Run Code Online (Sandbox Code Playgroud)

题:

如何使用模型按年龄获取用户User?

N69*_*69S 7

只需要考虑今天的日期并减去年数.然后将它与生日进行比较

Users::where('birthday', '<=', date('Y-m-d', strtotime('-20 years')))->get();
Run Code Online (Sandbox Code Playgroud)