こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 PHPのフレームワークの1つであるLaravelでRouteのプレフィックスを設定することができるprefixについてを丁寧に解説していきます。
前提条件:実行環境について
実行環境はWindowsで、Laravelのバージョンは【8.10.0】です。
この記事では
C:\Laravel\LaravelSample
配下にLaravelのプロジェクトを作成しています。
Laravelのインストールのやり方については、以下の記事をご参考ください。
prefixとは
prefixとは、web.phpでRouteを設定するとき、URIのプレフィックス(接頭辞)をグループ化して設定できるメソッドです。
Routeの基本的な書き方は↓になります。
1 |
Route::get('/sample/show', [SampleController::class, 'showPage']); |
Routeの数が少ないときは問題ありませんが、
1 2 3 |
Route::get('/sample/show', [SampleController::class, 'showPage']); Route::get('/sample/esit', [SampleController::class, 'editPage']); Route::get('/sample/conf', [SampleController::class, 'confPage']); |
こんな感じで多くなってくると、重複箇所が多くなり管理が大変です。
そういうときに便利なのがprefixというわけです。
上記のRouteをprefixを使ってまとめてみると
1 2 3 4 5 |
Route::prefix('sample')->group(function (){ Route::get('show', [SampleController::class, 'showPage']); Route::get('esit', [SampleController::class, 'editPage']); Route::get('conf', [SampleController::class, 'confPage']); }); |
という感じにsampleでグループ化できて管理もしやすくスッキリします!
では、次の章で実際に使って解説します。
Routeのprefixを解説するプログラムの概要
Routeのprefixを解説するプログラムは、
- コントローラー
- Bladeビュー
- routes\web.php
3つを使います。
コントローラーは名前を【WorkController.php】とし、
LaravelSample\app\Http\Controllers\Work\WorkController.php
に位置していて、Bladeビューを表示させるだけの役割です。
Bladeビューは名前を【job.blade.php】とし、
Laravel\LaravelSample\resources\views\work\job.blade.php
に位置していて、ただ単に文字を表示させるだけの役割です。
routes\web.phpでは、Routeの設定にprefixを使い【http://〇〇.〇〇.〇〇:8000/work/job】でアクセスした場合、WorkControllerの関数を呼ぶように設定します。
WorkController.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php namespace App\Http\Controllers\Work; use App\Http\Controllers\Controller; class WorkController extends Controller { public function show(){ return view('work.job'); } } |
job.blade.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>サンプル</title> </head> <body> <h1>prefixサンプルページ</h1> </body> </html> |
web.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 |
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\Work\WorkController; Route::prefix('work')->group(function (){ Route::get('job', [WorkController::class, 'show']); }); |
実行して確認
本当にprefixを使っても画面の表示に問題がないかを実行して確認します。
Laravelでサーバーを立ち上げるコマンドは
1 |
php artisan serve |
です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。
- http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/work/job
※コマンドプロンプトに記載されているURL - http://localhost:8000/work/job
どちらかのURLにアクセスすれば、問題なく画面が表示できていることを確認できます!
まとめ:Routeを設定するときprefixを使ってみよう
以上がLaravelのRouteのURIをグループ化して設定できるprefixの解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント