メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://kawax.biz/llms.txt

Use this file to discover all available pages before exploring further.

基本的なルーティング

Laravelの最も基本的なルートは、URIとクロージャを受け取ります。 複雑な設定ファイルなしに、ルートと動作を簡単に定義できます。
use Illuminate\Support\Facades\Route;

Route::get('/greeting', function () {
    return 'Hello World';
});

デフォルトのルートファイル

すべてのLaravelルートは routes/ ディレクトリのルートファイルに定義します。 これらのファイルは bootstrap/app.php の設定に基づいてLaravelが自動的に読み込みます。 routes/web.php にはブラウザ向けのルートを定義します。 このファイルのルートには web ミドルウェアグループが適用され、セッション・CSRF保護・クッキー暗号化が提供されます。
use App\Http\Controllers\UserController;

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

利用可能なHTTPメソッド

ルーターはすべてのHTTPメソッドに対応したルートを登録できます。
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
複数のHTTPメソッドに応答するルートは match または any を使います。
Route::match(['get', 'post'], '/', function () {
    // ...
});

Route::any('/', function () {
    // ...
});
web ルートファイルで POSTPUTPATCHDELETE を受け取るHTMLフォームには、必ず @csrf ディレクティブを含めてください。 含めない場合、リクエストが拒否されます。

ビューを返すルート

ルートがビューを返すだけの場合は、Route::view を使うと簡潔に書けます。
Route::view('/welcome', 'welcome');

// ビューにデータを渡す場合
Route::view('/welcome', 'welcome', ['name' => 'Taylor']);

ルートパラメータ

必須パラメータ

URLの一部を動的に取得するには、ルートパラメータを使います。 パラメータは {} で囲み、ルートコールバックの引数として受け取ります。
Route::get('/user/{id}', function (string $id) {
    return 'ユーザー ID: ' . $id;
});
複数のパラメータも定義できます。
Route::get('/posts/{post}/comments/{comment}', function (string $postId, string $commentId) {
    return "投稿 {$postId} のコメント {$commentId}";
});
ルートパラメータには / 文字を含めることはできません。

任意パラメータ

パラメータを任意にするには、パラメータ名の末尾に ? を付け、対応する引数にデフォルト値を設定します。
Route::get('/user/{name?}', function (?string $name = null) {
    return $name ?? 'ゲスト';
});

Route::get('/user/{name?}', function (?string $name = 'ゲスト') {
    return $name;
});

正規表現によるパラメータ制約

where メソッドを使ってパラメータの形式を正規表現で制約できます。
Route::get('/user/{id}', function (string $id) {
    // ...
})->where('id', '[0-9]+');

Route::get('/user/{name}', function (string $name) {
    // ...
})->where('name', '[a-zA-Z]+');
よく使うパターンは便利メソッドでも書けます。
Route::get('/user/{id}/{name}', function (string $id, string $name) {
    // ...
})->whereNumber('id')->whereAlpha('name');

名前付きルート

名前付きルートを使うと、URL生成やリダイレクトを行う際にルート名を使って参照できます。
Route::get('/user/profile', function () {
    // ...
})->name('profile');

名前付きルートへのURL生成

ルート名からURLを生成するには route ヘルパーを使います。
// URL生成
$url = route('profile');

// パラメータ付きURL生成
$url = route('user.show', ['id' => 1]);

リダイレクト

return redirect()->route('profile');

ルートグループ

関連するルートをグループ化して、ミドルウェア・コントローラー・プレフィックスなどを共通設定できます。

ミドルウェア

Route::middleware(['auth'])->group(function () {
    Route::get('/dashboard', function () {
        // 認証済みユーザーのみアクセス可能
    });

    Route::get('/account', function () {
        // 認証済みユーザーのみアクセス可能
    });
});

コントローラー

同じコントローラーを使うルートをグループ化できます。
use App\Http\Controllers\OrderController;

Route::controller(OrderController::class)->group(function () {
    Route::get('/orders', 'index');
    Route::post('/orders', 'store');
    Route::get('/orders/{id}', 'show');
});

プレフィックス

ルートのURIに共通のプレフィックスを付けられます。
Route::prefix('admin')->group(function () {
    Route::get('/users', function () {
        // /admin/users にアクセス可能
    });
    Route::get('/posts', function () {
        // /admin/posts にアクセス可能
    });
});

ルート一覧の確認

定義されたすべてのルートを一覧表示するには、Artisanコマンドを使います。
php artisan route:list
ミドルウェア情報も含めて表示する場合は次のようにします。
php artisan route:list -v
特定のURIから始まるルートのみを表示する場合は次のようにします。
php artisan route:list --path=user

次のステップ

ビュー

ビューを作成し、コントローラーからデータを渡す方法を学びます。
Last modified on April 6, 2026