【Laravel】クエリ文字列でURLからパラメータを取得する方法について解説します

こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。

この記事では、 PHPのフレームワークの1つであるLaravelクエリ文字列でURLからパラメータを取得する方法についてを丁寧に解説していきます。

ルートパラメータでURLからパラメータを取得する方法は以下の記事をご参考ください。

前提条件:実行環境について

実行環境はWindowsで、Laravelのバージョンは【8.10.0】です。

この記事では

C:\Laravel\LaravelSample

配下にLaravelのプロジェクトを作成しています。

Laravelのインストールのやり方については、以下の記事をご参考ください。

クエリ文字列とは

クエリ文字列とは

http://localhost:8000/sample?test=123

というように値を渡す方法です。

クエリ文字列の値を取得する場合は、コントローラーのみ特別な記述が必要です。
web.phpには必要ありません。

コントローラーでクエリ文字列を取得する方法は2パターンあります。

  • コントローラーの関数にrequest引数を与える
  • コントローラーの関数内でrequest関数を呼ぶ

です。
どちらのパターンでも

を宣言する必要があります。

それぞれ使い方を解説していきます。

パターンその1:コントローラーの関数にrequest引数を与える

コントローラーの関数にrequest引数を与えるとは、以下のように記載します。

上記の例だと

http://localhost:8000/sample?test=123

でアクセスした場合、resultには’123’という文字列が返されます。
もし、指定したクエリ文字の名前を間違えた、指定しなかった場合はエラーとならず空が返されます。

パターンその2:コントローラーの関数内でrequest関数を呼ぶ

コントローラーの関数内でrequest関数を呼ぶとは、以下のように記載します。

上記の例だと

http://localhost:8000/sample?test=456

でアクセスした場合、resultには’456’という文字列が返されます。
もし、指定したクエリ文字の名前を間違えた、指定しなかった場合はこのパターンもエラーとならず空が返されます。

では、次の章で実際に使ってみます。

クエリ文字列でURLからパラメータを取得するやり方を解説するプログラムの概要

クエリ文字列でURLからパラメータを取得するやり方を解説するプログラムは、

  • コントローラー
  • Bladeビュー
  • routes\web.php

3つを使います。

コントローラーは名前を【SampleController.php】とし、クエリ文字列からパラメータを取得し、Bladeビューに渡します。

  • コントローラーの関数にrequest引数を与える
  • コントローラーの関数内でrequest関数を呼ぶ

上記どちらのパターンも使います。

コントローラーからBladeビューに値を渡す方法については、こちらの記事をご参考ください。

Bladeビューは名前を【reqsample.blade.php】viewsディレクトリ直下に格納します。

routes\web.phpには、【http://〇〇.〇〇.〇〇:8000/reqsample】でアクセスした場合、SampleControllerの関数を呼ぶように設定します。

SampleController.phpのサンプルプログラム

reqsample.blade.phpのサンプルプログラム

web.phpのサンプルプログラム

実行して確認

クエリ文字列の値を取得して画面に表示することができるのかを実行して確認します。
Laravelでサーバーを立ち上げるコマンドは

です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。

今回、

  • name:【mike】を設定
  • age:【48】を設定

というクエリ文字列を与えます。

  • http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/reqsample?name=mike&age=48
    ※コマンドプロンプトに記載されているURL
  • http://localhost:8000/reqsample?name=mike&age=48

どちらかのURLにアクセスすれば、値を取得できていることが確認できます!

まとめ:クエリ文字列でURLからパラメータを取得してみよう

以上がLaravelでクエリ文字列でURLからパラメータを取得するやり方の解説でした!

あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

コメント

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