LoginSignup
0
2

More than 3 years have passed since last update.

【laravel】タグ検索機能の実装 

Posted at

タグ検索機能の実装 

画像のような、タグ名で投稿検索するフォームを実装する
タイトルなし.gif

前提

テーブル構造は以下の感じです。

スクリーンショット 2021-03-16 17.57.31.png

1 ビュー


    <form action="{{url('/')}}" method="GET">
    <label for="">タグで検索</label>
    <input type="text"  name="keyword" value="{{$keyword}}">
    <input type="submit" value="検索"  class="btn-primary">
    </form>

2 コントローラー


<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Article;
use App\Tag;
use App\Http\ArticleRequest;
use App\Http\Requests\ArticleRequest as RequestsArticleRequest;

class ArticleController extends Controller
{
    public function __construct()
    {
        $this->authorizeResource(Article::class, "article");
    }

    public function index(Request $request)
    {
        $keyword = $request->input("keyword");
        $query = Article::query();
        $articles = Article::whereHas('tags', function ($query) use ($keyword) {
            $query->where('name', 'LIKE', "%{$keyword}%");
        })->get();
        return view("articles.index", ["articles" => $articles, "keyword" => $keyword]);
    }
}

ポイントはwherehasを使って、リレーション先のnameをクエリに指定していることです!

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2