sql >> Databasteknik >  >> NoSQL >> MongoDB

Indirekt modifiering av överbelastad egendom App\Dossier::$program har ingen effekt

Problemet är att anropet $dossier->program kommer faktiskt inte åt egenskapen direkt i Eloquent-modeller utan anropar snarare en __get metod.

Den get-metoden returnerar inte en referens till egenskapen. Vad du bör göra är att ta tag i den ursprungliga egenskapen, ändra den och sedan lägga tillbaka den:

$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. Konstigt svar när man hittar dokument i MongoDB med Mongoose i Node.js

  2. radera redis-hashvärden i bulk baserat på hash-nyckelns namn

  3. Hur lagrar jag blobdata i MongoDB?

  4. hur man undviker $push-ing-nullvärden i mongo-aggregationsramverk