前回の記事の続きで、Laravelで複数の値から検索を行ってみます。
サンプルコード
resources\views\search\index.blade.php
{!! Form::open(['method' => 'GET']) !!} タイトル:{!! Form::text('s_title', $s_title) !!} カテゴリ:{!! Form::text('s_category', $s_category) !!} 制作会社:{!! Form::text('s_production', $s_production) !!} 声優:{!! Form::text('s_actor', $s_actor) !!} {!! Form::submit('検索') !!} {!! Form::close() !!} @foreach($data as $item) <div> <div>{{{ $item->id }}}</div> <div>{{{ $item->title }}}</div> <div>{{{ $item->category }}}</div> <div>{{{ $item->production }}}</div> <div>{{{ $item->actor }}}</div> </div> <hr> @endforeach
app\Http\Controllers\SearchController.php
<?php namespace App\Http\Controllers; use App\Autumn2016; use Request; class SearchController extends Controller { public function getIndex() { // 検索するテキスト取得 $s_title = Request::get('s_title'); $s_category = Request::get('s_category'); $s_production = Request::get('s_production'); $s_actor = Request::get('s_actor'); $query = Autumn2016::query(); // 検索するテキストが入力されている場合のみ if(!empty($s_title)) { $query->where('title', 'like', '%'.$s_title.'%'); } if(!empty($s_category)) { $query->where('category', 'like', '%'.$s_category.'%'); } if(!empty($s_production)) { $query->where('production', 'like', '%'.$s_production.'%'); } if(!empty($s_actor)) { $query->where('actor', 'like', '%'.$s_actor.'%'); } $data = $query->get(); return view('search.index', compact('data', 's_title', 's_category', 's_production', 's_actor')); } }
タイトルを「あ」、カテゴリを「オリジナル」で検索すると、以下のように絞られた状態で表示されました。
【参考サイト】
コメントが承認されるまで時間がかかります。