アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

Laravelにおけるルーティングの基本:Webアプリの入口を設計する

Featured image of the post

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を使いこなすための第一歩です。まずは基本を押さえ、実際にルートをいくつか定義してみることから始めてみましょう。

あなたを爆速で成長させるメンタリングプログラムはこちらから↓↓

RUNTEQ(ランテック) - 実践型Webエンジニア養成プログラミングスクールの入会