MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Indirekte Änderung der überladenen Eigenschaft Laravel MongoDB

Aufgrund dessen, wie der Zugriff auf Modellattribute in Eloquent implementiert ist, wenn Sie auf $category->specifics zugreifen , ein magisches __get() -Methode aufgerufen, die eine Kopie des Werts dieses Attributs zurückgibt. Wenn Sie also dieser Kopie ein Element hinzufügen, ändern Sie nur die Kopie, nicht den Wert des ursprünglichen Attributs. Aus diesem Grund erhalten Sie eine Fehlermeldung, die besagt, dass alles, was Sie tun, keine Auswirkungen hat.

Wenn Sie $category->specifics ein neues Element hinzufügen möchten Array müssen Sie sicherstellen, dass das magische __set() wird verwendet, indem auf das Attribut in einer Setter-Weise zugegriffen wird, z. B.:

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