我想默认为Eloquent模型添加一个新属性。例如,queryTime
属性。
因为必须在实例化后立即评估属性的值,所以getExtraAttribute()
方法在我的情况下不起作用。
我尝试添加:
protected $appends = ['time'];
public function __construct(array $attributes = [])
{
$attributes['time'] = time();
parent::__construct($attributes);
}
...对于模型但它没有工作。 $instance->time
只返回null
有什么想法吗?感谢。
答案 0 :(得分:1)
使用简单的类属性,设置其默认值,然后为其创建一个访问器,如下所示:
protected $time;
protected $appends = ['time']; // only needed if you need `time` in the json/array representation of the model.
public function __construct(array $attributes = [])
{
$this->time = time();
parent::__construct($attributes);
}
public function getTimeAttribute()
{
return $this->time;
}