【Laravel】ルーティング・コントローラー・ビュー(View)を連携させる

LaravelのWeb開発において、基本となるのが「ルーティング」「コントローラー」「ビュー(View)」の3つの連携です。

直接テキストを出力する基本を理解した後は、HTMLファイル(ビュー)を呼び出して整ったWebページを表示する流れをマスターしましょう!

この記事では、3つの要素がどのようにバトンを渡して画面を表示しているのかを分かりやすく解説します。

1. ルーティング・コントローラー・ビューの役割

Laravelでは、役割ごとに処理を分ける「MVC(Model-View-Controller)」という仕組みが使われています。

  1. ルーティング(案内役)ユーザーがアクセスしたURL(例: /about)を見て、「どの処理を実行するか」を整理します。
  2. コントローラー(司令塔)ルーティングから指示を受け、「どのビュー(画面)を表示するか」を判断して呼び出します。
  3. ビュー(画面表示)HTMLを使って、ユーザーのブラウザ上に実際に表示される見た目(デザイン)を作ります。

2. Step 1:ビュー(View)の作成

まずは、表示させたい画面(HTML)を作成します。

Laravelのビューファイルは resources/views/ の中に作成し、拡張子は .blade.php にします。

ファイル名:resources/views/about.blade.php

HTML
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>アバウトページ</title>
</head>
<body>
    <h1>Laravelへようこそ!</h1>
    <p>ルーティング・コントローラー・ビューが正しく連携されました。</p>
</body>
</html>

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

次に、作成したビューを呼び出すコントローラーを作ります。

ターミナル(コマンドプロンプト)で以下のコマンドを実行します。

Bash
php artisan make:controller PageController

作成された app/Http/Controllers/PageController.php を開き、return view('ビューファイル名'); を記述します。

PHP
namespace App\Http\Controllers;

use Illuminate\Http\Request;

class PageController extends Controller
{
    // '/about' アクセス時に実行される処理
    public function about()
    {
        // resources/views/about.blade.php を読み込んで表示
        return view('about');
    }
}

view('about') と書くことで、resources/views/about.blade.php が自動的に読み込まれます。

4. Step 3:ルーティングの設定 (routes/web.php)

最後に、URLとコントローラーを紐付けます。

routes/web.php に以下のコードを追加します。

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

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

ブラウザでhttp://localhost/my-app/public/aboutにアクセス

5. 全体の処理の流れまとめ

  1. ユーザーがブラウザでhttp://localhost/my-app/public/aboutにアクセスする
  2. ルーティング(web.php)がURLを検知し、PageControllerabout メソッドに処理を渡す
  3. コントローラー(PageController.php)が return view('about') を呼び出す
  4. ビュー(about.blade.php)が読み込まれ、HTML画面がブラウザに表示される

これで、「URLの検知 → 処理の実行 → HTML画面の表示」というWebアプリケーションの基本的な仕組みが完成しました!

コメント