【Laravel】ルーティングとコントローラーを理解する基礎ガイド

Laravel

Laravelを使ったWeb開発において、最も基本であり重要になるのが「ルーティング」「コントローラー」の連携です。

この記事では、初心者向けに「ルーティング」と「コントローラー」がそれぞれどのような役割を持ち、どうやって連携しているのかを分かりやすく解説します。

1. ルーティングとコントローラーの役割とは?

Webサイトにアクセスしたとき、内部では以下のような流れで処理が行われています。

  1. ルーティング(Web APIの案内役) ユーザーがアクセスしたURL(例: /about/contact)を見て、「どの処理を実行するか」を交通整理する役割です。
  2. コントローラー(司令塔) ルーティングからバトンを受け取り、「データベースからデータを取ってくる」「画面(ビュー)を出力する」といった具体的な処理を行って結果を返します。

2. ルーティングの設定 (routes/web.php)

Laravelでは、Webページのルーティングを routes/web.php ファイルに記述します。

PHP
use App\Http\Controllers\PageController;
use Illuminate\Support\Facades\Route;

// '/about' にアクセスがあったら PageController の about メソッドを呼ぶ
Route::get('/about', [PageController::class, 'about']);

上記のコードは「ユーザーが /about というURLにアクセスしたら、PageController というコントローラーの about 処理を実行してね」という意味になります。

3. コントローラーの作成 (PageController.php)

次に、ルーティングから呼び出されるコントローラーを作成します。

コマンドライン(ターミナル)で以下の Artisan コマンドを実行してコントローラーを作成します。

Bash
php artisan make:controller PageController

作成された app/Http/Controllers/PageController.php に、以下のように処理(メソッド)を記述します。

PHP
namespace App\Http\Controllers;

use Illuminate\Http\Request;

class PageController extends Controller
{
    // '/about' アクセス時に実行される処理
    public function about()
    {
        // 文字列を直接ブラウザに出力する
        return 'Hello, Laravel! ルーティングとコントローラーのテストです。';
    }
}

ブラウザでhttp://localhost/my-app/public/aboutにアクセスすると、文字が表示されます。

4. 全体の流れまとめ

  1. ユーザーがブラウザでhttp://localhost/my-app/public/aboutにアクセスする
  2. ルーティング(web.php)がURLを検知し、PageControllerabout メソッドに処理を渡す
  3. コントローラー(PageController.php)が直接文字列(Hello, Laravel!...)を返却する
  4. ブラウザ上に指定したメッセージがテキストとして表示される

この構成にしておくと、「まずはルーティングとコントローラーの連携だけを確認したい」という学習者にとっても、よりシンプルな解説になります。

コメント