2016-10-25 6 views
0

Hallo Ich habe ein Bearbeitungsformular, das die Eingabefelder anzeigt. Ich zeige die Daten aus der Datenbank in diesen Feldern an, damit Benutzer sie bearbeiten können. Und es gibt auch einen Knopf, der fragt, ein neues Feld hinzuzufügen. Ich bin in der Lage, mehrere Felder zu bearbeiten, aber das Problem ist, wie kann ich ein neues Feld in der Datenbank erstellen, wenn keine ID des Datensatzes vorhanden ist. Hinweis: Für das neue Feld sende ich 0 ID, so dass ich in CakePHP überprüfen kann, dass es ein neues Feld hat.CakePHP Mehrere Datensätze aktualisieren oder neue erstellen, wenn ID nicht in der Datenbank existiert

foreach ($exp as $k => $v) { 
    $dat[$k]["prp_id"] = $prpid; 
    $dat[$k]["exp_company"] = $v['company']; 
    $dat[$k]["position"] = $v['position']; 
    $dat[$k]["exp_id"] = $v['exp_id']; 
} 

$this->Experience->saveAll($dat, array('conditions' => array('exp_id' => $v['exp_id']))); 

Dies aktualisiert alle Felder. Übrigens bin ich auch nicht sicher, warum es richtig funktioniert, da ich hier bin $v['exp_id'] Senden nur einen Wert, weil es aus der Schleife, aber es funktioniert perfekt bedeutet, ich kann zu mehreren Feldern, die ich nicht sicher bin, wie. Am Ende habe ich zwei Probleme. Eine besteht darin, einen neuen Datensatz zu erstellen, wenn exp_id0 ist, und zweitens funktioniert mein Code gut zum Aktualisieren von Datensätzen.

Antwort

0

Versuchen Sie folgendes:

foreach ($exp as $k => $v) { 
    $dat[$k]["prp_id"] = $prpid; 
    $dat[$k]["exp_company"] = $v['company']; 
    $dat[$k]["position"] = $v['position']; 

    if ($v['exp_id'] != 0) { 
    $dat[$k]["exp_id"] = $v['exp_id']; 
    } 
} 

$this->Experience->saveAll($dat); 
+0

Die Aktualisierung. Es erstellt neue Datensätze – hellosheikh

+0

kann ich Debug-Ergebnis von $ Dat-Array sehen .. Ich möchte sehen, ob Sie diese Bedingung innerhalb foreach Schleife überprüfen müssen. –

+0

siehe die aktualisierte Antwort .. –

Verwandte Themen