0

似乎 $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()方法中指定默认属性后,它确实会发生突变。

任何人都可以确认这一点和/或有建议吗?

谢谢。

4

1 回答 1

0

您正在为对象本身分配一个默认变量,该变量超出了 mutator 的功能。

最好的选择可能是在模型的构造函数中包含默认值,以便在创建对象时调用并改变它们。我认为这样的事情应该有效:

function __construct($attributes = array()) {
    parent::__construct($attributes);
    $this->data = array();
}
于 2014-06-03T13:40:48.220 回答