前提・実現したいこと
配列に入っている値($request['deleteItemsIds'])と以下のテーブルのitem_idが一致した場合に、テーブルからレコードを削除したいです。
例えば、$request['deleteItemsIds']に[1,2]となっていた場合、idが1〜6のレコードを削除したいです。

該当のソースコード
whereInを使って配列と一致する条件を指定し、delete()を試みたのですが、テーブルが更新されません。もし、記載方法に誤りがある様でしたら、ご指摘いただきたいです。
なお、foreachで配列から1つずつ値を取り出して、delete()するとレコードが削除され、期待通りの結果が得られています。
php
1 public function delete(Request $request) 2 { 3 //こちらはテーブルが更新されない 4 ShopCategory::whereIn('item_id', $request['deleteItemsIds'])->delete(); 5 6 //こちらはテーブルから条件に一致したレコードが削除される 7 foreach($request['deleteItemIds'] as $deleteItemId){ 8 ShopCategory::where('item_id', $deleteItemId)->delete(); 9 } 10 }
アドバイスよろしくお願いします。
補足情報(FW/ツールのバージョンなど)
Laravel Framework 7.14.1
PHP 7.4.6
mysql Ver 8.0.20
回答3件
あなたの回答
tips
プレビュー
2020/06/30 21:39