技術メモ

【Laravel】ドロップダウンリストの絞り込み検索機能!

こんにちは、プログラミング学習初心者のもも(@momo_programer)です🍀

 

さて今回は、ドロップダウンリストを使った絞り込み検索機能について書いてきます。

 

自分のアプリの中でランク付けされているカテゴライズされたものをお持ちの方向けになると思います。

完成のイメージ

まずはどんなものを作ろうとしているかお披露目。

画像の右の評価のところですね。

 

デフォルト値は評価という文字列、それからランク。

 

ランクを選択すると、一致する記事のみを抽出して表示させる。

 

ではやっていきます。

ルーティングの確認・config直下にファイル作成

まずはブラウザ表示をさせるために、ルーティングの設計をします。35、36行目を新たに追加しました。

 

ルーティングとは、

 

たとえば、あるボタンを押したとき、そのボタンには行き先を指定できるんですね。それがルーティング(Route→Routing)です。

  1. 「このルーティングをまず通って!」という指示のもと、指定のルーティングにまずは行きます。
  2. そのルーティングでは、次に「このコントローラーのこのアクション(処理)をして」という指示が書かれています。
  3. それをもとに今度はコントローラーの指定のアクション先に飛ばされて、処理をしてレスポンス(返り値戻り値)を得ます。
  4. そしてそのアクションにも、どのページに返すかを指示できるので、その指示のもとブラウザが表示されるんですね。

 

今回は、ブラウザを表示するためのGET通信とリクエスト(検索ワードや絞り込み要素をユーザが指定できるもの)を送ってレスポンスをもらってブラウザ表示させるPOST通信の2つを設けました。

 

では、ドロップダウンリストをつくるために、configファイル直下にファイルを作ります。config直下に作ったファイルは割と簡単にどこでも呼び出し可能みたいなので、今回チャレンジしてみました。

 

app\config\にarray.phpファイルを作りました。

 

中身はこんな感じで作ってみました。本当は都道府県などデータ量が多い時に力を発揮しそうなものですが(笑)

 

添え字(番号)を1から振っているのがポイントです。0番目にはデフォルト値の文字列を入れる関係か(?)エラーになってしまうので、1から振ります。

bladeファイル作成・ブラウザで表示の確認

通常、ルーティング設計をしたら次はコントローラーでの処理を書いてからView(bladeファイル)を書くというのが流れですが、

 

私は、エラーの重複を避けたいために、ルーティング設計のあとはとりあえずbladeファイルを作ります。

 

*最低限、コントローラーにreturn view('users.show', $data);などは書いておかないと表示されません。

 

17行目フォーム形式でドロップダウンリストを作りました。タイトルキーワードのあいまい検索はここでは割愛します。

 

Form::selectでは4つの引数を必要とします。

  • 第一引数:name(何かしらのネーミング)
  • 第二引数:挿入する項目・・・今回はデフォルト値nullに「評価絞り込み」という文字列と、さきほどconfig直下に作った配列を指定します
  • 第三引数:セット値・・・指定した添え字(番号)をデフォルト値にすることができます。今回はnull
  • 第四引数:classやstyleなど見た目の指定

 

ここまで出来たら、まだ機能はないもののブラウザでドロップダウンが出来ているか確認します。

コントローラー@showに処理を追加

ブラウザで表示を確認できたら、いよいよ処理を書いていきます。44行目からの処理を追加して書きました。

 

こんな感じです。フォームで指定したリクエストを$requestという箱にいったん入れてあります。その中にはkey(タイトルキーワード検索)とvalue(評価別の添え字(番号))が入っている、もしくは空文字で入ってます。

 

それを$keyと$valueという新しい箱にそれぞれ取り出して入れ直します。

 

で、それぞれの処理を書いていきます。評価ランクの絞り込み検索では、色々書き方はあるのですが、個人的にswitch文を使って書いてみたかったのと、そのほうが見やすいかなと思ったためです。

 

処理を書き終えたら、returnに値を返してあげます。(画像では割愛)

 

これで、完成ですっ。ブラウザで動作の確認。

まとめ

今回はconfigファイル直下にファイルを作って呼び出す、という新たな技を知ることができたので良かったです^^

 

さらに複雑な絞り込み検索にも必ず役に立つと思います。

 

今後はlaravelのライブラリの全貌を知っていきたいな。退会機能とかもいろいろ用意されているものがあるようなので勉強しつつ、いろいろやってみたいと思います。

ももの公式メールマガジン

プログラミングに興味がある人やプログラミング学習を始めた人のために、

とっても大切なマインドについて公開しています。

 

私が思うに、マインドが整っていれば、どんな手段から学べます。

 

無料で学習しても、プログラミングスクールで学習したとしても自分の力にしていけます。

 

でもマインドが整っていないと、せっかくプログラミングスクールにお金を払っても、うまくいかなくて泣く思いをしてしまいます。

 

そんな風になってほしくないから、メルマガを始めました。

 

詳細はこちらのページを覗いてみて下さい^^

COMMING SOON...

-技術メモ

Copyright© とある新人SEは、走らない。 , 2021 All Rights Reserved Powered by AFFINGER5.