Vấn đề là đang gọi chương trình $dossier->program
không thực sự truy cập trực tiếp thuộc tính trong các mô hình loại Eloquent mà gọi một __get
phương pháp.
Phương thức get đó không trả về một tham chiếu đến thuộc tính. Những gì bạn nên làm là lấy thuộc tính ban đầu, sửa đổi nó và sau đó đặt nó trở lại:
$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();