実現したいこと
Laravel 検索機能の実装 複数条件&プルダウンからの選択形式
前提
現在、Laravelを使用し商品管理システムを制作しているのですが、
キーワード毎、タイプ毎に検索できるよう、検索機能の実装に取り組んでおります。
タイプ(冬用、オールシーズン)毎にプルダウン方式で検索をしたいと考えているのですが、
以下に記載されるエラーが出てきてしまい、うまくプルダウンでタイプが検索できません。
【参考ページ】
https://qiita.com/hinako_n/items/96584b4a641097c753c7
テーブル:Item、Type
発生している問題・エラーメッセージ
ErrorException Undefined variable: types_list (View: /Applications/MAMP/taiya-management/resources/views/items/itemlist.blade.php) $types_list is undefined Make the variable optional in the blade template. Replace {{ $types_list }} with {{ $types_list ?? '' }}
該当のソースコード
Itemlist.blade.php
1<!-- 検索 --> 2 3<form action="{{ route('itemlist') }}" method="GET" class="d-flex p-2"> 4 5 {{ csrf_field() }} 6 7 8 <div class="col-auto"> 9 10 <input type="search" name="keyword" class="form-control me-2" aria-label="Search"> 11 12 </div> 13 14 <div class="col-auto"> 15 16 <div class="ms-2"></div> 17 18 </div> 19 20 <label for="">タイプ 21 22 <div> 23 24 <select name="type" data-toggle="select"> 25 26 <option value="">全て</option> 27 28 @foreach($types_list as $types_item) 29 30 <option value="{{ $typs_item->getType() }}" @if($types=='{{ $types_item->getType()}}') selected @endif>{{ $types_item->getType() }}></option> 31 32 @endforeach 33 34 </select> 35 36 </div> 37 38 </label> 39 40 <div class="col-auto"> 41 42 <button type="submit" class="btn btn-secondary"> 43 44 {{ __('検索') }} 45 46 </button> 47 48 </div> 49 50<!-- 商品登録 --> 51 52 <div class="col-auto ms-auto"> 53 54 <a href="{{ route('item/create') }}" class="btn btn-secondary"> 55 56 {{ __('タイヤ登録') }} 57 58 </a> 59 60
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ItemController.php
public function itemlist(Request $request) { $keyword = $request->input('keyword'); if ($keyword !== null) { $keyword = mb_convert_kana($keyword, 'KV'); } $query = Item::query()->with(['type']); // ->select('items.tire_maker', 'items.tire_id', 'types.type_name',); if (!empty($keyword)) { $query->where(function ($query) use ($keyword) { $query->where('tire_maker', 'LIKE', '%'.$keyword.'%') ->orwhere('inch', 'LIKE', '%'.$keyword.'%') // タイヤタイプの検索 // ->orwhere('type_id', 'LIKE', '%'.$keyword.'%') ->orwhere('size', 'LIKE', '%'.$keyword.'%'); }); } /** ページネーション */ $items = $query->paginate(10); return view('items.itemlist', ['items' => $items]); }
0 コメント