以下のようなイメージ。
- キーワードは検索フォームに入力し、検索ボタンを押して実行
- キーワードを含むレコードをデータベースから検索し、ページに表示する
- URLクエリパラメータにキーワードを入れる
(https://example.com/?keyword=検索フォームに入力された文字列)
ソースコード
routes/web.php
Route::resource('/', 'PostController');
app/Http/Controllers/PostController.php
use App\Post;
public function index(Request $request) {
// キーワード取得
$keyword = $request->input('keyword', ''); // デフォルトは空文字
//キーワード検索
$posts = Post::where('title', 'LIKE' , "%{$keyword}%")->get()->all();
// ページ更新時にクエリパラメータが消えないようにkeywordも渡す
$params = array('posts' => $posts,
'keyword' => $keyword)
return view('/index', $params);
}
resources/views/index.blade.php
@foreach(@posts as @post)
@endforeach