2017-01-17 4 views
1

Mein Projekt ist auf Angularjs + Laravel.So speichern Sie dynamische Daten in der Datenbank in Laravel

Vom Frontend sende ich dynamisch erzeugten Eingang zum Laravel Controller.

Szenario ist Ich nehme Familiendetails, wo Kind-Feld ist dynamisch.So, wenn Sie auf Hinzufügen mehr klicken Es wird ein anderes Eingabefeld generieren.

Zunächst Person X haben 1 Kind nämlich ROohan. Jetzt hat er 2 mehr, jetzt, wenn er Daten von 3 neuen Kindern sendet, will ich, dass 2 Kinderdaten hinzugefügt werden, ohne 2 Kinder zu überschreiben.

Meine Anfrage, die ich

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"} 
      ]} 

mein Problem in der Steuerung empfange ist, wie diese Daten speichern in separaten Zeile zu machen, und wenn Daten vorhanden dann Zeile sollte nicht erstellt erhalten werden.

+0

Erstellen Sie ein Modell und eine entsprechende Datenbanktabelle. Wiederholen Sie dann die einzelnen Eingaben, überprüfen Sie, ob die Modelle bereits vorhanden sind, und erstellen Sie sie, falls nicht. – Loek

Antwort

1

Zuerst müssen Sie json_decode() verwenden, um Daten in ein Array zu konvertieren, zum Beispiel:

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

Dann sollten Sie über dieses Array iterieren und updateOrCreate() Methode verwenden, um vorhandene Zeilen zu aktualisieren oder neue zu schaffen. Wenn Sie z. B. ID verwenden, um eine Zeile zu identifizieren:

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

können Sie bitte mehr elobrate. Ich bekomme keine richtige Ausgabe. @Alexey Mezenin – Mohammed

+0

Wie kann ich das Feld aus der Tabelle entfernen, wenn der Benutzer bestimmte Daten entfernt hat. @AlexeyMezenin – Mohammed

Verwandte Themen