sql >> Databasteknik >  >> NoSQL >> MongoDB

Indirekt ändring av överbelastad egendom Laravel MongoDB

På grund av hur åtkomst till modellattribut implementeras i Eloquent, när du kommer åt $category->specifics , en magisk __get() metod kallas som returnerar en kopia av det attributets värde. Därför, när du lägger till ett element till den kopian, ändrar du bara kopian, inte det ursprungliga attributets värde. Det är därför du får ett felmeddelande som säger att vad du än gör kommer det inte att ha någon effekt.

Om du vill lägga till ett nytt element till $category->specifics array måste du se till att den magiska __set() används genom att komma åt attributet på ett sätt som sätter, t.ex.:

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


  1. MongoDB $mod

  2. Python Pymongo autentisering misslyckades

  3. Deserialisering av MongoDB BSON

  4. Mongoose läser inte från Mongo sekundär databas