Laravelのクエリの書き方についてご相談です。whereBetweenを勉強しているのですが、余分なレコードが表示されたりする状態で思った通りの結果がでません。
Laravelのクエリの書き方についてご相談です。whereBetweenを勉強しているのですが、余分なレコードが表示されたりする状態で思った通りの結果がでません。 やりたいことは [category_id] が40, 41, 42, 43, 44, 45, 52, 53 に該当するレコードを選んでから[status] が new または leftのレコードを表示したいです。 現在のコードはこちらになります。よろしくお願いいたします。 public function test_rb() { $blogs = Blog::with('user','category') ->where('br', Auth::user()->br) ->where(function($query){ $query->where('status', '=','new') ->orWhere('status', '=', 'left'); }) ->whereBetween('category_id', [40, 45]) ->orwhereBetween('category_id', [52, 53]) ->orderBy('deadline') ->orderByDesc('price') ->paginate(100); return view('blogs.test_rb')->with('blogs',$blogs); }
PHP・31閲覧・50
ベストアンサー
そのクエリでは、statusがleftなものは、全件、抽出されてしまいませんか? こういうふうにクエリを打つと大丈夫です。 頻出なので、ぜひ。 https://blog.shinki.net/posts/laravel-where-orwhere-closures
質問者からのお礼コメント
statusがその他のものが表示されてしまうんです。。。 とても分かりやすいサイトを教えていただきありがとうございました。ベストアンサーをお受け取りくださいませ。
お礼日時:5/24 16:46