PHP
1//editアクション 2 3$dal15s = filter_input(INPUT_POST, 'dal15', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY); 4 5$DalcheckboxTable15s = TableRegistry::get('Dalcheckbox15s'); 6 7//saveManyにidを含めれば該当のidが更新、idがなければインサート 8$saveData = []; 9foreach($dal15s as $value){ 10$saveData[] = [ 11 'datacklists_id' => $id, 12 'dal15_id' => $value, 13 ]; 14} 15 16$entities = $DalcheckboxTable15s->newEntities($saveData); 17$result2 = $DalcheckboxTable15s->saveMany($entities);
#####テーブル構成
■datacklists(マスタ)
id | dal01 | dal02 |
---|---|---|
1 | テキスト | テキスト |
2 | テキスト | テキスト |
3 | テキスト | テキスト |
■dalcheckbox15s
id | datacklists_id | dal15_id |
---|---|---|
1 | 3 | 1 |
2 | 10 | 1 |
4 | 10 | 2 |
7 | 10 | 3 |
9 | 11 | 7 |
■daldata15s
id | name |
---|---|
1 | テキスト |
2 | テキスト |
3 | テキスト |
######説明
現状、全てテーブルdalcheckbox15sにインサートされてしまいます。
そうではなく、datacklists_idにを参照してある場合は更新、ない場合は新規追加としたいのですが
実現の方法がわかりません。。
一旦、deleteAllで編集するdatacklists_idの投稿をdalcheckbox15sから全て削除してから
新たにインサートする方法で実現できたのですが、不恰好かと思い、、、
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/09 05:59
2017/03/09 06:13 編集
2017/03/09 06:18