Вопрос

Кажется, что значения по умолчанию, определенные в свойстве $ Атрибуты, не мутируются перед сохранением в базе данных?

У меня есть эта настройка:

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

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

Все, что я получаю, это поле базы данных, заполненное буквально «массивом» и ошибкой Preg_replace.При указании атрибута по умолчанию в методе переопределенного генеракодицетагCode он становится мутированным.

может кто-нибудь подтвердить это и / или есть предложения?

спасибо.

Это было полезно?

Решение

Вы назначаете переменную по умолчанию на самом объекте, которая находится вне функции мутатора.

Лучший вариант, вероятно, включает в себя по умолчанию в конструкторе модели, поэтому их называются и мутируются при создании объекта.Я думаю, что что-то вроде этого должно работать:

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top