Pregunta

Parece que los valores predeterminados definidos en la propiedad de $ atributos no están siendo mutados antes de guardar la base de datos?

Tengo esta configuración:

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

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

Todo lo que obtengo es el campo de la base de datos lleno de 'Array' literalmente y un error PREG_REPLOPE.Al especificar el atributo predeterminado en un método anulado save(), se une.

¿Puede alguien confirmar esto y / o tiene sugerencias?

gracias.

¿Fue útil?

Solución

Está asignando una variable predeterminada en el propio objeto, que está fuera de la función de un mutador.

La mejor opción es probablemente incluir el valor predeterminado en el constructor del modelo, por lo que se llaman y se mutan cuando se crea el objeto.Creo que algo así debería funcionar:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top