Question

Il semble que les valeurs par défaut définies dans la propriété Attributs $ ne soient pas mutées avant d'économiser sur la base de données?

J'ai cette configuration:

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

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

Tout ce que je reçois, c'est le champ de base de données rempli d'une "tableau" littéralement et d'une erreur Preg_Replace.Lors de la spécification de l'attribut par défaut dans une méthode généracodagcode ultérieure généreuse, elle est mutée.

Quelqu'un peut-il confirmer cela et / ou a des suggestions?

merci.

Était-ce utile?

La solution

Vous attribuez une variable par défaut sur l'objet lui-même, qui est en dehors de la fonction d'un mutateur.

La meilleure option est probablement d'inclure la valeur par défaut dans le constructeur du modèle. Ils sont donc appelés et mutés lorsque l'objet est créé.Je pense que quelque chose comme ça devrait fonctionner:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top