Eloqüente do padrão $atributos não obter mutantes
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.
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