/ / Come salvare i dati dinamici nel database in laravel - laravel, laravel-5

Come salvare i dati dinamici nel database in laravel - laravel, laravel-5

Il mio progetto è su angularjs + Laravel.

Dal frontend sto inviando input generati dinamicamente al controller di laravel.

Lo scenario è che sto prendendo i dettagli della famiglia in cui il campo figlio è dinamico. Se fai clic su Aggiungi altri genererà un altro campo di input.

Inizialmente Person X ha 1 figlio cioè ROohan. Ora ne ha altri 2, Ora quando sta inviando i dati di 3 nuovi bambini, voglio che i dati di 2 bambini vengano aggiunti senza la presenza di altri 2 bambini presenti.

La mia richiesta che sto ricevendo nel controller

family_data :
{"famdet":[{"id":"choice1","cname":"Rohan","doa":"2017-01-12"},
{"id":"choice2","cname":"sohan","cdob":"2017-01-13"},
{"id":"choice3","cname":"nitesh","cdob":"2017-01-07"}
]}

il mio problema è come fare in modo che questi dati vengano salvati in una riga separata e se i dati sono presenti, la riga non dovrebbe essere creata.

risposte:

1 per risposta № 1

Per prima cosa devi usare json_decode() per convertire i dati in un array, ad esempio:

$familyData = json_decode($data, true)["famdet"];

Quindi dovresti eseguire iterazioni su questo array e usarlo updateOrCreate() metodo per aggiornare le righe esistenti o crearne di nuove. Ad esempio, se stai usando e ID per identificare una riga:

foreach ($familyData as $row) {
Model::updateOrCreate(["id" => $row["id"]], $row)
}