【Laravel】ルーティングの使い方と意味について



1. ルーティングとは?
ルーティングとは、URLとそのURLに対応するアクション(処理内容)を結びつける仕組みのことです。Laravelでは、routes/
ディレクトリにルーティング設定が記述され、通常はroutes/web.php
ファイルで定義します。例えば、https://example.com/about
というURLにアクセスしたときに、「会社概要のページ」を表示する処理を実行するよう設定します。
この記事ではLaravel10を利用して、ルーティングについてわかりやすく解説していきます。
2. Laravelでの基本的なルーティング
Laravelでは、ルートを定義するためにRoute
を使用します。以下に基本的なルート定義の例を示します。
2.1. GETルート
GETルートは、ページの表示やデータの取得時に使用されます。例えば、会社概要ページを表示するルートは次のように定義できます。
use Illuminate\Support\Facades\Route;
Route::get('/about', function () {
return '<h1>会社概要ページです</h1>';
});
/about
にアクセスすると、「会社概要ページです」と表示されます。- 第一引数:URLパス
- 第二引数:処理(クロージャやコントローラ)

2.2. POSTルート
POSTルートは、データをサーバーに送信する場合に使用します。例えば、お問い合わせフォームの送信処理に適したルートは以下のように設定します。
Route::post('/contact', function () {
return 'お問い合わせフォームの送信処理';
});
2.3. PUTルート
PUTルートは、既存データを更新する処理に使用されます。例えば、ユーザーのプロフィール情報を更新する場合のルートは次のように記述します。
Route::put('/profile', function () {
return 'プロフィールの更新処理';
});
2.4. DELETEルート
DELETEルートは、データの削除処理に利用されます。例えば、ユーザーのプロフィールを削除する場合のルートは以下のように定義します。
Route::delete('/profile', function () {
return 'プロフィールの削除処理';
});
以上の4つのルートをまとめると、
- GET: 情報の表示(例: ページの閲覧)
- POST: 新しいデータの登録(例: フォーム送信)
- PUT: 既存データの更新(例: プロフィール変更)
- DELETE: データの削除(例: ユーザーアカウント削除)
3. ルートパラメータ
ルートに動的な値を受け渡す場合は「ルートパラメータ」を使用します。


/user/{id}
。アクセス時に値渡せる。3.1. 必須パラメータ
Route::get('/user/{id}', function ($id) {
return "ユーザーID: {$id}";
});
/user/1
とアクセスすると「ユーザーID: 1」と表示されます。
3.2. オプションパラメータ
パラメータを省略可能にするには、?
を付け、デフォルト値を指定します。
Route::get('/user/{name?}', function ($name = 'ゲスト') {
return "こんにちは、{$name}さん!";
});
/user
→ 「こんにちは、ゲストさん!」/user/Taro
→ 「こんにちは、Taroさん!」
4. 名前付きルート
名前付きルートを使用すると、特定のルートに対して名前をつけておくことができます。これにより、URLをハードコーディングせずにルートを参照できるため便利です。
4.1. 名前付きルートの定義
名前付きルートを定義するには、ルートを作成した後に ->name('ルート名')
を付け加えます。以下は具体例です。
Route::get('/dashboard', function () {
return 'ダッシュボード';
})->name('dashboard');
上記のコードでは、/dashboard
というURLに対して dashboard
という名前を付けています。この名前を使用することで、このルートを簡単に参照できるようになります。
4.2. 名前付きルートの使用
名前付きルートを使用する際には、route()
を利用します。
$url = route('dashboard'); // URLを取得
5. グループ化されたルート
複数のルートに共通の設定を適用したい場合、ルートをグループ化する方法があります。これにより、コードの重複を避けたり、構成を整理したりすることが可能になります。以下では、共通のURLプレフィックスを設定する場合と、ミドルウェアを適用する場合の例をご紹介します。
5.1. 共通のURLプレフィックスを設定
ルートに共通のプレフィックス(URLの先頭部分)を設定したい場合は、Route::prefix()
メソッドを使用します。この方法を使うことで、共通の部分を一箇所で定義でき、各ルートごとに指定する必要がなくなります。以下の例では、admin
というプレフィックスを持つルートをまとめています。
Route::prefix('admin')->group(function () {
Route::get('/dashboard', function () {
return '管理者ダッシュボード';
});
Route::get('/users', function () {
return 'ユーザー管理';
});
});
/admin/dashboard
→ 管理者ダッシュボード/admin/users
→ ユーザー管理
5.2. ミドルウェアの適用
特定のルートに共通のミドルウェア(リクエスト処理のフィルターや条件)を適用したい場合は、Route::middleware()
メソッドを使用します。例えば、認証が必要なルートをまとめて設定する場合に便利です。
Route::middleware(['auth'])->group(function () {
Route::get('/profile', function () {
return 'プロフィールページ';
});
Route::get('/settings', function () {
return '設定ページ';
});
});
認証が必要なルートをまとめて設定できます。
6. ルートとコントローラの連携
Laravelでは、ルートに直接処理を書く代わりに、コントローラを使用するのが一般的です。
6.1. コントローラの使用例
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
上記の例では、UserController
内のshow
メソッドが呼び出されます。

