ルートパラメータ
コントローラクラスの最後に、ルートパラメータの扱いについて紹介しておきましょう。ルートパラメータについては、連載第2回で解説しています。その際、ルートパラメータはコールバック関数の引数として渡されることを紹介しました。
処理をコントローラクラスに記述するようになった場合、このルートパラメータはどのように記述すればいいのでしょうか。実は発想は同じで、コントローラクラス内のメソッドの引数として渡されます。
例えば、リスト7のルートパラメータを利用したルーティング登録があるとします。
Route::get("/chap4/whoAreYou/{name}", "Chap4Controller@whoAreYou");
ここで登録したメソッドはwhoAreYou()です。このメソッドでnameパラメータを受け取るには、引数に記述します。リスト8のコードになります。リスト8をChap4Controllerクラスに追記してください。
<?php
〜省略〜
class Chap4Controller extends Controller
{
〜省略〜
public function whoAreYou($name) // (1)
{
$data["name"] = $name; // (2)
return view("chap3.hello", $data);
}
}
(1)でwhoAreYou()メソッドを追記していますが、引数として$nameが記述されています。この$nameにURL上のパラメータが格納されます。(2)では渡されたURL上のパラメータをテンプレートに渡すために配列に格納しています。
実際に、例えば以下のURLにアクセスしてみてください。このURLでは、URL末の「Bob」がルートパラメータにあたります。
- http://localhost/firstlaravel/public/chap4/whoAreYou/Bob
すると、図3の画面が表示され、無事、ルートパラメータを受け取っているのがわかります。
なお、このルートパラメータは複数設定できます。例えば、リスト9のようなコードです。
Route::get("/chap4/whoAreYouFull/{nameFirst}/{nameLast}", "Chap4Controller@whoAreYouFull");
ここでは、nameFirstとnameLastの2個のルートパラメータが設定されています。
このルーティングで処理を行うwhoAreYouFull()メソッドは、例えばリスト10のようになります。
<?php
〜省略〜
class Chap4Controller extends Controller
{
〜省略〜
public function whoAreYouFull($nameFirst, $nameLast) // (1)
{
$data["name"] = $nameFirst." ".$nameLast;
return view("chap3.hello", $data);
}
}
(1)にもあるように、ルートパラメータと同じ数の引数を記述すれば利用できます。
実際に、例えば以下のURLにアクセスしてみてください。このURLでは、URL末の「Bob」と「James」がルートパラメータにあたります。
- http://localhost/firstlaravel/public/chap4/whoAreYouFull/Bob/James
すると、図4の画面が表示され、無事、複数のルートパラメータを受け取っているのがわかります。
まとめ
今回は、ルーティング登録コールバック関数内に記述していた処理を、1つのクラスとしてまとめたコントローラクラスを紹介しました。
次回は、ルーティングコールバック関数の処理、あるいは、今回紹介したコントローラによる処理の前後に、処理を追加する機能として、ミドルウェアを紹介します。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- 人気のPHPフレームワークLaravelを習得しよう連載記事一覧
- この記事の著者
-
WINGSプロジェクト 齊藤 新三(サイトウ シンゾウ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。Web系製作会社のシステム部門、SI会社を経てフリーランスとして独立。屋号はSarva(サルヴァ)。HAL大阪の非常勤講師を兼務。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
