sql >> Base de Datos >  >> NoSQL >> MongoDB

La modificación indirecta de la propiedad sobrecargada App\Dossier::$program no tiene efecto

El problema es que llamar a $dossier->program en realidad no accede a la propiedad directamente en los modelos de tipo Eloquent, sino que llama a un __get método.

Ese método get no devuelve una referencia a la propiedad. Lo que debe hacer es tomar la propiedad original, modificarla y luego volver a colocarla:

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