Pergunta

Parece que os valores padrão definidos em us $de propriedade de atributos não estão a ser mutado antes de salvar no banco de dados?

Eu tenho essa configuração:

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

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

Tudo que eu vejo é campo de banco de dados cheio de literalmente 'Matriz' e um preg_replace erro.Após especificar o atributo padrão em uma substituído save() método não ficar mutação.

Alguém pode confirmar isso e/ou tem sugestões?

Obrigado.

Foi útil?

Solução

Você está atribuindo um padrão variável no objeto em si, que é fora da função de um modificador.

A melhor opção é provavelmente a incluir a predefinição no construtor do modelo, de modo que eles são chamados e mutadas quando o objeto é criado.Eu acho que algo como isso deve funcionar:

function __construct($attributes = array()) {
    parent::__construct($attributes);
    $this->data = array();
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top