実現したいこと
キーワードとカテゴリーのプルダウンの検索フォームを使って一覧から一致するデータのみを表示させたい
前提
キーワードのinput欄とカテゴリーから選ぶプルダウンの検索フォームで、
キーワードのみ記入がある時、カテゴリーのみが選択されている時、
両方がある時、両方ない時でif文を使って
条件分岐していますが、カテゴリーのみ選択時のみ正しく表示されません。
発生している問題・エラーメッセージ
キーワード入力せずにカテゴリーを選択するとリロードはされるものの絞り込みができない
該当のソースコード
public function sarch(Request $request,Item $item):View{ // dd($request->all()); $categories=Category::all(); $items=Item::all(); if(empty($request->keyword) && empty($request->keyword)){ // dd($request->all()); $items=Item::all(); } elseif(empty($request->keyword) && !empty($request->brand)){ dd($request->all()); $items=Item::where('category_id',$request->brand)->get(); } elseif(!empty($request->keyword) && !empty($request->brand)){ // dd($request->all()); $items=Item::where('product',"$request->keyword") ->where('category_id',$request->brand)->get(); } elseif(!empty($request->keyword) && empty($request->brand) ){ // dd($request->all()); $items=Item::where('product',"$request->keyword")->get(); } return view('list',['items'=>$items,'categories'=>$categories]); }
<form method="get" action="{{route('post.sarch')}}" > @csrf <div class="sarch"> <input type="text" name="keyword" " placeholder="検索キーワード"> <select id="brand" name="brand"> <option velue="" selected disabled>メーカー名</option> @foreach ($categories as $category) <option value="{{$category->id}}">{{$category->brand}}</option> @endforeach </select> <button class="sarch-btn">検索</button> </div> </form>
試したこと
elseif文の位置を変えたり、条件を違う書き方にしたりしてみましたが、上手くいきません
補足情報(FW/ツールのバージョンなど)
Laravel Framework 9.52.16

0 コメント