sql >> Databáze >  >> NoSQL >> MongoDB

Nepřímá úprava přetížené vlastnosti App\Dossier::$program nemá žádný účinek

Problém je ve volání $dossier->program ve skutečnosti nepřistupuje k vlastnosti přímo v modelech typu Eloquent, ale spíše volá __get metoda.

Tato metoda get nevrací odkaz na vlastnost. Co byste měli udělat, je uchopit původní vlastnost, upravit ji a poté ji vrátit zpět:

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



  1. Mongoose agregátní vyhledávání - Jak filtrovat podle konkrétního ID

  2. Vykreslit základní zobrazení HTML?

  3. Jak použít $set a tečkovou notaci k aktualizaci prvků vloženého pole pomocí odpovídajícího starého prvku?

  4. Vyhněte se duplicitním záznamům v poli Mongoose