【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

というURLにアクセスした場合、【test】をパラメータとして渡すやり方です。

web.phpのルーティングの設定方法は、↓のようにします。

ルートパラメータとして渡したいものを{}で囲います。

ルートパラメータは、必須と任意の設定にすることができます。
違いは【?】がパラメータ名の最後にあるかないかです。
書き方のサンプルは以下になります。

必須 {test}
任意 {test?}

ルートパラメータに設定した値は、そのままコントローラーやビューに渡されます。
コントローラーでルートパラメータを取得するには

のように関数の引数に指定してあげれば、取得することができます。

ちなみにルートパラメータは複数指定することも可能です。
複数指定する場合はweb.phpのルーティングを

というように【/】でつなげてあげればOKです!

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

ルートパラメータでURLからパラメータを取得するやり方を解説するプログラムの概要

ルートパラメータでURLからパラメータを取得するやり方を解説するプログラムは、

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

3つを使います。

コントローラーは名前を【SampleController.php】とし、ルートパラメータを取得し、Bladeビューに渡します。

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

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

routes\web.phpには、ルートパラメータが2つ設定されている【http://〇〇.〇〇.〇〇:8000/paramsample】をルーティングします。
ルートパラメータの2つのうち、1つは必須、もう1つを任意として、【SampleController】を実行するよう設定します。

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

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

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

実行して確認

ルートパラメータの値を取得して画面に表示することができるのかを実行して確認します。
Laravelでサーバーを立ち上げるコマンドは

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

今回、

  • name:【tanaka】を設定
  • age:設定しない

というルートパラメータを与えます。

  • http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/paramsample/tanaka/
    ※コマンドプロンプトに記載されているURL
  • http://localhost:8000/paramsample/tanaka/

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

まとめ:ルートパラメータでURLからパラメータを取得してみよう

以上がLaravelでルートパラメータでURLからパラメータを取得するやり方の解説でした!

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

コメント

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