前回は Laravelのディレクトリ構造 を解説しました。
今回はその中でも最初に触ることになる
ルーティング(Routing)
を解説します。
ルーティングは
URLと処理をつなぐ仕組み
で、Laravel開発の入口になります。
この記事では次の内容を解説します。
- ルーティングとは何か
- routes/web.phpの基本
- GET / POSTの使い分け
- Controllerとの連携
- 実務での書き方
ルーティングとは
ルーティングとは
URLと処理の対応付け
です。
例えば
/users
にアクセスしたときに
ユーザー一覧を表示
という処理を実行する仕組みです。
routes/web.php
Laravelではルーティングは次のファイルに書きます。
routes/web.php
このファイルが
Web画面の入口
になります。
最もシンプルなルート
例
Route::get('/', function () {
return 'Hello Laravel';
});
このコードの意味
/にアクセスするとHello Laravelを表示
ブラウザで確認
http://127.0.0.1:8000/
にアクセスすると
Hello Laravel
が表示されます。
GETとPOST
ルーティングには種類があります。
GET
Route::get('/users', function () {
return 'Users';
});
用途
- ページ表示
- データ取得
POST
Route::post('/users', function () {
return 'Create User';
});
用途
- データ登録
- フォーム送信
ルートパラメータ
URLに値を渡すこともできます。
Route::get('/users/{id}', function ($id) {
return $id;
});
アクセス
/users/10
結果
10
複数パラメータ
Route::get('/users/{id}/{name}', function ($id, $name) {
return $name;
});
Controllerとの連携
実務では 無名関数ではなくControllerを使います。
Controller作成
php artisan make:controller UserController
Controller例
class UserController extends Controller
{
public function index()
{
return 'User List';
}
}
ルート設定
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);
ルーティングの流れ
URLアクセス
↓
routes/web.php
↓
Controller
↓
View
これがLaravelの基本構造です。
名前付きルート
ルートに名前を付けることができます。
Route::get('/users', function () {
return 'Users';
})->name('users.index');
使用例
route('users.index');
メリット
- URL変更に強い
- 管理しやすい
リダイレクト
Route::redirect('/home', '/users');
Viewを返す
Route::get('/', function () {
return view('welcome');
});
ルート一覧確認
php artisan route:list
表示例
GET /users UserController@index
実務でのルーティング
実務では次のように書きます。
Route::get('/users', [UserController::class, 'index']);
Route::post('/users', [UserController::class, 'store']);
Route::get('/users/{id}', [UserController::class, 'show']);
RESTfulルーティング
Laravelでは次のような構成が一般的です。
| URL | 処理 |
|---|---|
| GET /users | 一覧 |
| POST /users | 作成 |
| GET /users/{id} | 詳細 |
| PUT /users/{id} | 更新 |
| DELETE /users/{id} | 削除 |
resourceルート
まとめて定義できます。
Route::resource('users', UserController::class);
よくあるミス
ルートが反映されない
php artisan serve 再起動
Controllerが見つからない
use の書き忘れ
URLミス
/users と /user の違い
まとめ
この記事では Laravelのルーティング を解説しました。
重要なポイント
- ルーティングはURLと処理をつなぐ
- routes/web.php に書く
- Controllerと連携する
- GET / POSTを使い分ける
Laravel開発ではルーティングがすべての入口になります。
次の記事
次回は
LaravelのController
を解説します。
- Controllerの役割
- メソッド設計
- ルーティングとの関係
を詳しく説明します。


コメント