前回は「シンプル版」と「Blade版」で Laravel の環境が正しく動くことを確認しました。
今回はさらに一歩進めて、Controllerを使った Hello World を作りながら MVCの流れ を体験してみましょう。
✅ 1. Controllerを作成する
コマンドで HelloController
を作成します。
php artisan make:controller HelloController
👉 実行すると以下のファイルが生成されます。
📂 app/Http/Controllers/HelloController.php
✅ 2. Controllerに処理を書く
生成された HelloController.php
を編集します。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HelloController extends Controller
{
public function index()
{
// resources/views/hello.blade.php を表示する
return view('hello');
}
}
👉 index
メソッドが /hello-controller
へアクセスされた時に実行されます。
💡 補足:なぜ index
で hello.blade.php
が表示されるのか?
- メソッド名(index) と ビュー名(hello.blade.php) は直接関係ありません。
- 表示されるのは、メソッド内で
return view('hello')
と書いたからです。 -
view('hello')
とすると、Laravelは自動的に
📂 resources/views/hello.blade.php
を探して描画します。
👉 つまり流れはこうです:
- ルート
/hello-controller
へアクセス -
HelloController@index
が呼ばれる -
return view('hello')
が実行される - →
hello.blade.php
が表示される
📌 index
という名前は慣習で、「トップページ」「一覧」などによく使われるだけで必須ではありません。
✅ 3. ルートを設定する
📂 routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HelloController;
// Controller版 Hello World
Route::get('/hello-controller', [HelloController::class, 'index']);
✅ 4. Bladeビューを再利用する
前回作成した 📂 resources/views/hello.blade.php
をそのまま利用します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
<h1>Hello World! 🎉</h1>
<p>これはLaravelで最初に作ったビューです。</p>
</body>
</html>
✅ 5. 動作確認
ブラウザで以下のURLを開いてみましょう。
👉 http://localhost:8000/hello-controller
✅ Bladeビューの内容が表示されれば成功です!
🎯 まとめ
ここまでで Laravel の 3つの Hello World が完成しました。
-
/hello
→ ルート直書き(文字列返却) -
/hello-blade
→ ルート+Bladeビュー -
/hello-controller
→ Controller+Bladeビュー(MVC入門)
👉 これで Laravel の基本である MVC(Model-View-Controller) の流れが体験できました。