MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

La modifica indiretta della proprietà sovraccaricata App\Dossier::$programma non ha effetto

Il problema è che chiamando $dossier->program in realtà non accede direttamente alla proprietà nei modelli di tipo Eloquent ma chiama piuttosto un __get metodo.

Quel metodo get non restituisce un riferimento alla proprietà. Quello che dovresti fare è prendere la proprietà originale, modificarla e poi reinserirla:

$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();