前提・実現したいこと
配列に入っている値($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