MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Modification indirecte de la propriété surchargée Laravel MongoDB

En raison de la façon dont l'accès aux attributs de modèle est implémenté dans Eloquent, lorsque vous accédez à $category->specifics , un __get() magique La méthode est appelée et renvoie une copie de la valeur de cet attribut. Par conséquent, lorsque vous ajoutez un élément à cette copie, vous modifiez simplement la copie, pas la valeur de l'attribut d'origine. C'est pourquoi vous obtenez une erreur indiquant que quoi que vous fassiez, cela n'aura aucun effet.

Si vous souhaitez ajouter un nouvel élément à $category->specifics tableau, vous devez vous assurer que la magie __set() est utilisé en accédant à l'attribut d'une manière setter, par exemple :

$category->specifics = array_merge($category->specifics, $this->request->get('specifics'));