0
こんにちは私は入力フィールドを表示する編集フォームを持っています。これらのフィールドにデータベースのデータを表示しています。また、新しいフィールドを追加するボタンもあります。私は複数のフィールドを編集することができますが、問題は、レコードの既存のIDがない場合、データベースに新しいフィールドを作成する方法です。 注:新しいフィールドについては、0
idを送信していますので、cakephpに新しいフィールドがあることを確認できます。Cakephp IDがデータベースに存在しない場合、複数のレコードを更新または新規作成する
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'])));
これはすべてのフィールドを更新しています。 Btwなぜ私はここにいるので正しく動作しているのかわからない$v['exp_id']
ループの外にあるので値が1つだけ送信されていますが、それは完全に機能しています。ですから、私は2つの問題があります。 exp_id
が0
である場合、新しいレコードを作成し、2番目の理由は、このコードがレコードの更新に適している理由です。
そのがそれを更新していません。それは新しいレコードを作成します – hellosheikh
私は$ dat配列のデバッグ結果を見ることができます..あなたがforeachループ内でその条件をチェックする必要があるかどうかを見たいですか? –
更新された答えを参照してください.. –