在保存到数据库之前,$ attributes属性中定义的默认值似乎没有被变异?
我有这个设置:
protected $attributes = array(
'data' => array();
);
public function getDataAttribute($value)
{
return unserialize($value);
}
public function setDataAttribute($value)
{
$this->attributes['data'] = serialize($value);
}
我得到的只是数据库字段,字面上填充了数组'和preg_replace错误。在覆盖的save()
方法中指定默认属性后,它会发生变异。
任何人都可以确认这个和/或有建议吗?
感谢。
答案 0 :(得分:0)
您正在为对象本身分配一个默认变量,该变量不在mutator的函数中。
最好的选择可能是在模型的构造函数中包含默认值,因此在创建对象时会调用它们并进行变异。我认为这样的事情应该有效:
function __construct($attributes = array()) {
parent::__construct($attributes);
$this->data = array();
}