一覧画面で、プルダウンから選択し表示させたい。

実現したいこと

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 コメント