Laravelのルーティングに関する基本的な情報については、こちら読んでいただけると理解いただけるかと思います。併せて読んでいただけると幸いです。
特定のアドレスにアクセスすると、それに対応する処理が呼び出される。その関連付けを行っているのが「ルーティング」です。
「routes」フォルダについて
このルーティングに関する情報をまとめてあるのが、「routes」フォルダです。
この中には、デフォルトでいくつかのスクリプトファイルが用意されています。
api.php | APIのルーティングです。 例えば、ユーザー認証などのように、プログラム内から利用する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を学習されている方のお力になれれば幸いです。