似乎在保存到数据库之前,$属性属性中定义的默认值不会被突变?

我有这个设置:

protected $attributes = array(
    'data' => array();    
);

public function getDataAttribute($value)
{
    return unserialize($value);
}
public function setDataAttribute($value)
{
    $this->attributes['data'] = serialize($value);
}
.

所有我得到的数据库字段填充了字面上的'数组'和preg_replace错误。在将recraddener save()方法中指定默认属性时,它确实变突。

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

谢谢。

有帮助吗?

解决方案

您在对象本身上分配默认变量,该变量超出了utator的函数。

最佳选项可能会在模型的构造函数中包含默认值,因此在创建对象时调用和突变它们。我认为这样的事情应该有效:

function __construct($attributes = array()) {
    parent::__construct($attributes);
    $this->data = array();
}
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top