Laravelでサイト内に検索フォームを無料で簡単に設置する方法

Laravel・PHP豆知識・トラブル対策

Spatie Searchableパッケージで、Laravelで簡単に検索フォームを設置する方法を解説します。

Googleの検索ボックスは会員制サイトはムリ。
ScoutとAlgoriaを使う方法もありますが、Algoriaは一定以上利用すると有料になります。

「回数制限付きだと落ち着かない」
「条件なしで無料で使いたい!」

という場合には、今回ご紹介するパッケージがおすすめ。

Laravelでサイト内全文検索フォームを無料で簡単に設置する方法

今回は、textsテーブルのbodyカラムを検索するフォームを作っていきます。

データベース内のテーブルは、このような構造になっています。

今回はこの中の bodyカラムの中身を検索。

検索結果は titleカラムを表示するようにします。

仕上がりイメージはこちら。

①パッケージインストール

まずはパッケージをインストールしましょう。

②モデルファイルを編集

次に検索対象のモデルファイルを開きます。

一番上にuse宣言を入れ、さらにimplements Searchableと加えます。

さらに getSearchResultメソッドを追加。

メソッド内のABの部分は、状況に応じて変更してください。

A検索結果のリンク先となります。

通常は (モデル名.show) のルート設定を入れておきます。

Bは検索結果で表示したいカラムを入れます。

③ ルート設定を作成

次に、ルート設定を作成しておきます。

④ コントローラーを作成

次に、コントローラーを作成します。

コントローラーの最初に、searchableと、検索に使うモデルのためのuse宣言を入れます。

C には検索するモデル名と、カラムを入れます。

これで下準備完了。

⑤ 検索ボックスを作成

次にビュー部分を作っていきます。

最初に検索ボックスですが、action に先ほど作成した search.result を設定する以外は、通常どおり。

デザインはお好きなものにしてください。

⑥ 検索結果表示画面を作成

次にroutes/views の中にsearchフォルダを作り、その中にresult.blade.phpファイルを作成します。

これで出来上がり。

なお、検索対象のモデル(テーブル)は複数設定できます。

その場合、他のモデルも同じように設定します。

さらにコントローラーの「C 」の部分をコピペし、追加したモデルの情報も入れるようにしてください。

じゅんこ
じゅんこ

素敵な検索ボックスを作って、サイトの使い勝手をあげいきましょう♪

Laravel・PHP豆知識・トラブル対策

【Laravelの教科書・無料プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

Laravel8版と、最新のLaravel9版、ふたつのテキストご用意してます♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

Laravel8版と、最新のLaravel9版、ふたつのテキストご用意してます♪

Laravel関連のご相談承ってます♪
「Webアプリを開発してほしい」
「社内にLaravelが分かる人がいない。コンサルしてほしい」
そんな企業様のご依頼承っています。
お問い合わせはこちら
Laravel関連のご相談承ってます♪
「Webアプリを開発してほしい」
「社内にLaravelが分かる人がいない。コンサルしてほしい」
そんな企業様のご依頼承っています。
お問い合わせはこちら
Twitter始めました。
40代からプログラミング!

コメント

タイトルとURLをコピーしました