はじめに
Laravelを学び始めたとき、まず出てくるのが「MVCモデル」という言葉。でも正直、「何それ?難しそう…」と感じる人も多いのではないでしょうか?
この記事では、LaravelにおけるMVCの役割と考え方を、初心者にもわかるようにざっくりカジュアルに解説します!
MVCってなに?
MVC は以下の3つの役割に分けてアプリケーションを作る考え方です。
-
Model(モデル):データを扱う部分(データベースとやりとりする役)
-
View(ビュー):画面に見える部分(HTMLやBlade)
-
Controller(コントローラー):ユーザーの操作を受け取って、ModelとViewをつなぐ役
たとえば、ユーザーが「お問い合わせフォーム」を送信したとき:
-
Controllerが「お、フォームが送信されたな」と気づく
-
必要があればModelに「この内容をDBに保存してね」と頼む
-
最後にViewに「ありがとうページを表示してあげて」と伝える
という流れになります。
LaravelでのMVC構成とディレクトリの対応
Laravelでは、MVCの役割ごとにディレクトリが明確に分かれています。
役割 | 説明 | ディレクトリ例 |
---|---|---|
Model(モデル) | データベースとのやりとり担当 | app/Models/User.php |
View(ビュー) | 画面の見た目・表示担当 | resources/views/index.blade.php |
Controller(コントローラー) | ModelとViewの橋渡し役 | app/Http/Controllers/UserController.php |
Laravelのフォルダ構成を見ると、もうMVCがしっかり分かれてるのが分かります。
-
app/Models
→ データベースとつながるModelクラスを置く場所 -
app/Http/Controllers
→ リクエストを受け取って処理するController -
resources/views
→ HTMLやBladeテンプレートを書くView
この構成を覚えておくだけでも、Laravelプロジェクトがかなり見通しよくなります!
例:ユーザー一覧を表示したいとき
public function index() { $users = User::all(); // ← Modelからデータ取得 return view('users.index', compact('users')); // Viewに渡す }
<!-- View(users/index.blade.php) --> @foreach ($users as $user) <p>{{ $user->name }}</p> @endforeach
このように、それぞれの役割を分けることで、コードが読みやすく、保守もしやすくなるんです。
MVCのいいところ
-
見通しが良くなる(どこで何してるか分かりやすい)
-
役割ごとにファイルを分けられる
-
チーム開発でも混乱しにくい
最初はちょっと面倒に感じるかもしれませんが、慣れると「MVCのおかげでラク!」ってなると思いますよ!
まとめ
Laravelでよく使われるMVCモデルは、「Model=データ」「View=見た目」「Controller=つなぎ役」と役割分担する構造です。
難しそうに見えるけど、考え方を知るだけで開発がグッとわかりやすくなります!
コメント