模型工厂就像这样返回基于生日的年龄
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模型工厂就像这样返回基于生日的年龄相关的知识,希望对你有一定的参考价值。
答案
我们可以使用下面的代码。
$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。
以上是关于模型工厂就像这样返回基于生日的年龄的主要内容,如果未能解决你的问题,请参考以下文章