LaravelでWebアプリケーションを開発する上で、まず理解しておきたいのが「ルーティング」の仕組みです。
ルーティングとは、「URLと処理内容のマッピング」を定義する仕組みで、アプリケーションの“入口”を管理する非常に重要な役割を担っています。
この記事では、Laravelのルーティングの基本について、初心者にもわかりやすく解説します。
ルーティングとは?
「ルーティング(Routing)」とは、ユーザーがアクセスしたURLに対して、どのコントローラーやビューを返すかを定義する機能です。Laravelでは、routes/ ディレクトリ内にあるファイルでルーティングを設定します。
主に使われるのは以下の2つ:
-
web.php:Webアプリケーション用のルート -
api.php:API用のルート
Laravelのルート定義はとても直感的でシンプル。例えば、以下のように書くだけで /hello というURLにアクセスできるようになります。
// routes/web.php
Route::get('/hello', function () {
return 'こんにちは、Laravel!';
}); ルートのHTTPメソッド
Laravelでは以下のようなHTTPメソッドに対応しています:
-
Route::get():主に表示用のリクエスト -
Route::post():フォーム送信やデータ登録用 -
Route::put()/Route::patch():更新処理用 -
Route::delete():削除処理用
例えば、フォームからの送信処理は以下のように記述します。
Route::post('/submit', function () {
// データ処理
}); ルートとコントローラーの紐づけ
ルートには匿名関数だけでなく、コントローラーメソッドを指定することも可能です。
// コントローラーのルート定義
Route::get('/users', [UserController::class, 'index']); このように書くことで、コントローラーの index メソッドが実行されます。
さらに、コントローラーをグルーピングすることで、より見通しの良い設計が可能になります。
Route::controller(UserController::class)->group(function () {
Route::get('/users', 'index');
Route::get('/users/{id}', 'show');
}); ルートパラメータ
URLの一部を変数として受け取りたいときは、ルートパラメータを使います。
Route::get('/user/{id}', function ($id) {
return "ユーザーIDは {$id} です";
}); オプションパラメータも ? を使って指定可能です。
Route::get('/post/{id?}', function ($id = null) {
return $id ? "記事ID: {$id}" : "記事IDが指定されていません";
}); 名前付きルートとルートヘルパー
ルートに名前をつけることで、アプリ内でURLをハードコーディングせずに呼び出せるようになります。
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard'); Blade内でのリンク生成:
<a href="{{ route('dashboard') }}">ダッシュボードへ</a> ミドルウェアとルーティング
ルートに対してミドルウェアを適用することで、認証やアクセス制御が可能になります。
Route::middleware(['auth'])->group(function () {
Route::get('/dashboard', [DashboardController::class, 'index']);
}); authミドルウェアが適用されているため、未ログインユーザーはこのページにアクセスできません。
まとめ
Laravelのルーティングは、柔軟性と拡張性を兼ね備えた非常に強力な機能です。
シンプルなルートから、コントローラー連携、パラメータ、ミドルウェアの適用まで、段階的に学ぶことで効率的なアプリケーション設計が可能になります。
ルーティングを理解することは、Laravelを使いこなすための第一歩です。まずは基本を押さえ、実際にルートをいくつか定義してみることから始めてみましょう。

