sql >> Database >  >> NoSQL >> MongoDB

Indirecte wijziging van overbelast eigendom Laravel MongoDB

Vanwege de manier waarop toegang tot modelattributen wordt geïmplementeerd in Eloquent, wanneer u $category->specifics opent , een magische __get() methode wordt aangeroepen die een kopie van de waarde van dat kenmerk retourneert. Daarom, wanneer u een element aan die kopie toevoegt, wijzigt u alleen de kopie, niet de waarde van het oorspronkelijke kenmerk. Daarom krijg je een foutmelding dat wat je ook doet, het geen effect zal hebben.

Als je een nieuw element wilt toevoegen aan $category->specifics array, moet je ervoor zorgen dat de magische __set() wordt gebruikt door het attribuut op een setter manier te benaderen, bijv.:

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


  1. Controleer of de mongodb-database bestaat?

  2. Hoe kan ik MongoDB in Kohana gebruiken?

  3. Heb je JPA nodig bij het gebruik van MongoDB?

  4. Meest efficiënte manier om geneste categorieën (of hiërarchische gegevens) in Mongo op te slaan?