Laravel 同一属性的增变器
Laravel mutator for same attribute
我的模型中的属性可以超过 1 个 getter 吗?
我有一个日期,我想将它作为日期和 Carbon 的人类可读格式两种形式使用
现在如果我做这个:
将 UTC 转换为人类可读格式
public function getCreatedAtAttribute($date){
Carbon::setLocale('de');
return Carbon::createFromFormat('Y-m-d H:i:s', $date)->diffForHumans();
}
我以人类可读的方式获得它。
如何获取正常日期?
如果您想获得人类可读的日期以及正常日期,那么您可以在模型中添加 created_at 列作为
protected $dates = ['created_at'];
这给了我们碳日期实例并获得人类可读的日期,你可以这样做
$model_instance->created_at->diffForHumans();
答案更新
您可以通过添加自定义访问器获取不同格式的 createdAt
日期:
class ModelName extends Model {
protected $appends = ['newtime','difftime'];
public function getNewtimeAttribute(){
return Carbon::parse($this->created_at)->diffForHumans;
}
public function getDifftimeAttribute(){
return Carbon::now()->diff(Carbon::parse($this->created_at));
}
}
$appends
属性 中列出的任何属性将自动包含在模型的数组或 JSON 形式中,前提是您已添加适当的访问器。
我的模型中的属性可以超过 1 个 getter 吗?
我有一个日期,我想将它作为日期和 Carbon 的人类可读格式两种形式使用
现在如果我做这个:
将 UTC 转换为人类可读格式
public function getCreatedAtAttribute($date){
Carbon::setLocale('de');
return Carbon::createFromFormat('Y-m-d H:i:s', $date)->diffForHumans();
}
我以人类可读的方式获得它。
如何获取正常日期?
如果您想获得人类可读的日期以及正常日期,那么您可以在模型中添加 created_at 列作为
protected $dates = ['created_at'];
这给了我们碳日期实例并获得人类可读的日期,你可以这样做
$model_instance->created_at->diffForHumans();
答案更新
您可以通过添加自定义访问器获取不同格式的 createdAt
日期:
class ModelName extends Model {
protected $appends = ['newtime','difftime'];
public function getNewtimeAttribute(){
return Carbon::parse($this->created_at)->diffForHumans;
}
public function getDifftimeAttribute(){
return Carbon::now()->diff(Carbon::parse($this->created_at));
}
}
$appends
属性 中列出的任何属性将自动包含在模型的数组或 JSON 形式中,前提是您已添加适当的访问器。