MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

La modification indirecte de la propriété surchargée App\Dossier::$program n'a aucun effet

Le problème est que l'appel de $dossier->program n'accède pas directement à la propriété dans les modèles de type Eloquent mais appelle plutôt un __get méthode.

Cette méthode get ne renvoie pas de référence à la propriété. Ce que vous devez faire est de récupérer la propriété d'origine, de la modifier puis de la remettre :

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