PHPフレームワーク「Laravel」ルーティング Route::get()

Laravelの開発環境が整ったら実際にフレームワークを利用してみます。

今回は「ルーティング」の解説です。

ルーティングとは?

通常のWebサイトは、公開ディレクトリにファイルを設置することでブラウザからアクセスし、コンテンツを表示・閲覧することができます。

例えば、公開ディレクトリが「public」の場合、publicディレクトリ内に「hello.html」を設置することで、「http://〇〇/hello.html」でアクセスすることができます。

Laravelの場合は、特定のアドレスにアクセスする場合、そのアドレスに割り当てられたプログラムの実行が必要となります。この関連付けがルーティングです。

この仕組みを理解していないと、思ったようにWebサイトやアプリケーションを公開することができません。

ルート情報が記述されているファイル

ルート情報が記述されているファイルは「routes/web.php」にあります。

下記がweb.phpの初期状態となります。

この

の記述があることでLaravelの初期ページが表示されるようになっています。

Welcomeページ表示の詳細

では、詳細にみていきます。

ルート情報の設定は

で行います。

Welcomeぺ時の場合は、第一引数のアドレスに「/」を設定することでサイトのトップページを表しています。

第二引数には関数を記述し、welcomeのテンプレートを view() を利用し呼び出し、return で返しています。

welcomeテンプレートの場所

Welcomeテンプレートの場所は「resources/views/welcome.blade.php」にあります。

基本邸にはHTMLでの記述ですが、@で始まる記述があります。これはLaravelの「Blade」というテンプレートエンジンを利用して書かれたコードです。

LaravelではPHPでの記述でも問題なく動作しますが、Bladeテンプレートエンジンを利用して記述する方がはるかに多くなります。

ルート情報を追加

それでは、welcomeページとは別のページを追加してみます。

今回は、「http://〇〇/hello/」でアクセスできるページを作成してみたいと思います。

ルート情報が記述されている「routes/web.php」をエディターで開き下記を記述して、ブラウザから「http://〇〇/hello/」にアクセスしてみてください。

正しく記述できていれば下記のようなページが表示されます。
関数内に記述されたHTMLがそのまま表示されていることがわかります。

ルートパラメーターを利用する

Route::getではアクセス時にパラメータを設置し値を渡すこともできます。
記述方法は下記のようになります。

では実際に記述して動作を確認してみます。

先程のルート情報を改良してみました。
実際にブラウザで「http://〇〇/hello/param%20str%20OK」アクセスするとhelloの後に付け足した文字列が表示されています。

パラメータを利用できることがわかりましたが、今回の記述方法では、パラメータの記述が必須となります。
もしURLにパラメーターを付与せずにアクセスするとエラーとなり「404」のページが表示されます。

必須でなく記述するには下記のように記述します。
パラメータ名の末尾に「?」を付与 {param?}、引数にデフォルト値を設定 $param = ‘no param’ します。

実際にブラウザでパラメーターを付けずに「http://〇〇/hello/」にアクセスします。

デフォルト値に設定した「no param」が表示されています。

これでパラメータの付与は必須ではなくなりました。

「ルーティング」解説は以上となります。
実際にはこのように利用はしませんが、動作の仕組みは理解しておく必要があります。

created by Rinker
PHPフレームワークのロングセラー定番解説書が、新バージョン対応で改訂! 本書は、Laravelのインストールから、フレームワークの中心になるModel-View-Controller(MVC)の使い方、開発に役立つ各種機能をわかりやすく解説した入門書です。
created by Rinker
PHPフレームワーク
『PHPフレームワークLaravel入門』(青本)を読み終わった方にお勧め!「もっと知りたかったこと」を本書で詳細に解説!PHPでWebアプリケーションを開発するフレームワークには種々ありますが、圧倒的人気ナンバーワンはLaravel!本書は、2017年9月刊行の大好評『PHPフレームワークLaravel入門』を補足する続編。読者の「これも知りたかった!」という声に応えました!

コメントする

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)