Het probleem is dat het aanroepen van $dossier->program
heeft geen rechtstreekse toegang tot de eigenschap in modellen van het Eloquent-type, maar roept eerder een __get
. aan methode.
Die methode get retourneert geen verwijzing naar de eigenschap. Wat je moet doen is de originele eigenschap pakken, aanpassen en dan terugplaatsen:
$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();