模型工厂就像这样返回基于生日的年龄

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模型工厂就像这样返回基于生日的年龄相关的知识,希望对你有一定的参考价值。

enter image description here

我想写一个引用该生日条目的函数..

到目前为止,这就是我所做的

但我进入终端enter image description here

答案

我们可以使用下面的代码。

$birthDate = '31-07-1983';
$data = [
    'age'=> call_user_func(function() use( $birthDate){
        return (date('Y') - date('Y', strtotime($birthDate)));
    })
];
print_r($data);
另一答案

考虑到age是一个计算字段并且每天都会更改,这不应该是存储在数据库中的数据,因此不应该在您的工厂中。

我将从数据库和工厂中删除该字段,并将accessor添加到您的模型中:

// Make sure birthdate is cast to a Carbon date.
protected $dates = [
    'birthdate',
];

// Define the "age" property accessor.
public function getAgeAttribute()
{
    return now()->diffInYears($this->birthdate);
}

使用访问者,您可以作为属性访问该字段:

$ci = AppCriminalInfo::find(1);
dd($ci->age);

如果你想在模型的数组/ json输出中看到它,你也可以将它添加到$appends property

以上是关于模型工厂就像这样返回基于生日的年龄的主要内容,如果未能解决你的问题,请参考以下文章

怎样用生日算年龄

Laravel 8 基于类的模型工厂

pandas生日转年龄

根据生日获取年龄

JS根据身份证号得出年龄、性别、生日、籍贯问题,来个高手

根据生日获取年龄