Lravelでバルクアップデートする場合のバリデーションの方法について
環境
- Laravel 8
- MySQL 8
- PHP 7.4
質問
配列のバリデーションを調べたところvalidateのexists:〜を使うと配列ごとに毎回問い合わせが発生し遅くなると書いてあり
現状whereIn
exists
でフィルタ?しています このような場合どのようにバリデーションするのがベストでしょうか?
よろしくおねがいします。
現状のコード一部
(tweetにタグ付けする個人的なwebアプリです)
タグid,tweet idを配列でリクエストして一括で紐付けしたいと思っています。
php
1$request->validate([ 2 'tags.*' => 'required|numeric|distinct', 3 'tweets.*' => 'required|numeric|distinct' 4]); 5 6$tags = $request->tags; 7$tweets = $request->tweets; 8if(Tweet::whereIn('tweet_id',$tweets)->exists()){ 9if(Tag::whereIn('tag_id',$tags)->exists()){ 10 foreach ($tags as $tag){ 11 Tag::find($tag)->tweets()->toggle($tweets); 12 } 13} 14}
あなたの回答
tips
プレビュー