GET/POSTルートの定義

Laravelのルーティング機能は、HTTPリクエスト(GET、POSTなど)とコントローラやクロージャの対応関係を定義するための仕組みです。以下では、GETルートおよびPOSTルートの定義方法について詳しく説明します。


1. ルーティング定義ファイル

Laravelのルート定義は通常、以下のいずれかのファイルに記述します:

  • routes/web.php:Webブラウザ向けルート(セッション、CSRF保護あり)

  • routes/api.php:API向けルート(ステートレス)


2. GETルートの定義

GETリクエストは主に「ページの表示」や「情報の取得」に使用されます。

例:クロージャを使ったGETルート

php
Route::get('/hello', function () { return 'Hello, World!'; });

例:コントローラを使ったGETルート

php
Route::get('/user', [UserController::class, 'show']);

この例では、UserControllershowメソッドが実行されます。


3. POSTルートの定義

POSTリクエストは主に「フォーム送信」や「データの登録・更新」などに使用されます。

例:クロージャを使ったPOSTルート

php
Route::post('/submit', function () { return 'フォームが送信されました'; });

例:コントローラを使ったPOSTルート

php
Route::post('/user/create', [UserController::class, 'store']);

この例では、UserControllerstoreメソッドが呼び出され、ユーザーデータを保存する処理が実行されることが想定されます。


4. 名前付きルート(オプション)

ルートに名前を付けると、URLをハードコーディングせずに利用できるようになります。

php
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');

ビューやコントローラ内で次のように使用できます:

php
return redirect()->route('dashboard');

5. ルートのグルーピング(参考)

GET/POSTルートを共通のプレフィックスやミドルウェアでまとめることも可能です:

php
Route::prefix('admin')->group(function () { Route::get('/panel', [AdminController::class, 'index']); Route::post('/update', [AdminController::class, 'update']); });

まとめ

HTTPメソッド 用途 Laravelの定義方法
GET データ取得、表示 Route::get()
POST データ送信、登録 Route::post()

それぞれのルートは、クロージャやコントローラクラスに関連付けて処理を記述します。Laravelのルーティングは、柔軟かつシンプルに設計されており、RESTfulなAPIや複雑なWebアプリケーションにも対応できます。

ChatGPT4o 生成日:2025/06/23