PHP-Laravel- プログラミング

【Laravel入門】ルーティング その2

Laravelのルーティングに関する基本的な情報については、こちら読んでいただけると理解いただけるかと思います。併せて読んでいただけると幸いです。

特定のアドレスにアクセスすると、それに対応する処理が呼び出される。その関連付けを行っているのが「ルーティング」です。

「routes」フォルダについて

このルーティングに関する情報をまとめてあるのが、「routes」フォルダです。

この中には、デフォルトでいくつかのスクリプトファイルが用意されています。

api.phpAPIのルーティングです。
例えば、ユーザー認証などのように、プログラム内から利用するAPIの機能を特定のアドレスに割り当てるのに利用されます。
channels.phpブロードキャストチャンネルのためのルーティングです。
console.phpコンソールプログラムのためのルーティングです。
web.php一般的なwebページとしてアクセスするためのルーティングです。

基本的に、webページとして公開するものはすべてweb.phpにルート情報を記述します。

ルート情報の記述

web.phpのスクリプトの内容を確認します。※バージョンは8.xを前提としています。

ルーティングとは、リクエストされたURLに応じて 以下のことなどを決めることです。

  • コントローラーに処理を渡す
  • 直接ビューを呼び出す

web.php は、プロジェクト\routes\web.php に格納されています。

web.phpの基本的なルーティングの書き方は以下になります。

<?php
 use Illuminate\Support\Facades\Route;
 use App\Http\Controllers\TestController;

 Route::get('/test', [TestController::class, 'showValue']);

ルーティングで使いたいコントローラーは、
use App\Http\Controllers\TestController;
と宣言しておきます。

Route::get~の部分の説明をしますと・・・
Route::get('/test', [TestController::class, 'showValue']);

get → GETリクエストのルーティング
/test → URLがtestの場合、指定しているコントローラーの関数に処理を渡します。
TestController::class → 処理が渡されるコントローラークラスを指定します。
showValue → 処理を渡された時に実行する関数名を指定します。

上記例としてはgetをあげていますが、他にも以下が設定できます。

  • post
  • put
  • patch
  • delete
  • options

Laravelのバージョン7までとバージョン8のルーティングの書き方が全く異なる点には注意が必要です。

<?php
 use Illuminate\Support\Facades\Route;
 Route::get('/sample', 'SampleController@showPage');

バージョン7では、上記のような記述でした。上記でルーティングの設定をバージョン8で行うと、Target class [○○Controller] does not exist.というエラーメッセージが表示されます。

laravel ルーティングに関してつぶやいてみました。laravelを学習されている方のお力になれれば幸いです。

-PHP-Laravel-, プログラミング