MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Pośrednia modyfikacja przeciążonej właściwości App\Dossier::$program nie ma żadnego efektu

Problem polega na tym, że wywołanie $dossier->program w rzeczywistości nie uzyskuje dostępu do właściwości bezpośrednio w modelach typu Eloquent, ale raczej wywołuje __get metoda.

Ta metoda get nie zwraca odwołania do właściwości. To, co powinieneś zrobić, to pobrać oryginalną właściwość, zmodyfikować ją, a następnie włożyć z powrotem:

$dossier=Dossier::where('_id',(int)$request->input('dossier_id'))->first();
$originalProgram = $dossier->program;
$originalProgram[$request->input('program')]['cities'][$request->input('city')]['services'][$request->input('service')][$request->input('name')]=$request->input('value');
$dossier->program = $originalProgram;
$dossier->save();



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zwróć rzeczywisty typ pola w MongoDB

  2. Object.keys, jak uzyskać listę kluczy w mongodb

  3. Nie można obliczyć średniego czasu

  4. Dlaczego otrzymuję wyjątek InvalidDocument podczas zapisywania obiektu w MongoDB w Django po raz pierwszy?

  5. Pierwsze kroki z Pythonem i MongoDB