LaravelにおけるMVCとは?図解してみた

シェアしてね〜🤞

WebアプリケーションフレームワークでMVCという設計パターンがあります。Laravelもこの設計に則って開発できます。

MVCとはモデル、ビュー、コントローラと呼ばれるもので構成されていて、それぞれにきちんと役割があります。

モデルはアプリケーションデータやロジックに関する役割があり

ビューは見た目の役割、

コントローラはユーザからの入力に対してビューを返したり、モデルを呼び出したりします。

  • モデル:データやロジック
  • ビュー:見た目(画面)
  • コントローラ:ビューとモデルの仲介役

最初はなかなかイメージが沸かないと思うので、一つずつ見ていくことにします。

モデル

アプリケーションデータやロジックに関する役割がモデルにはあるといいましたが、具体的には何があるでしょう?

Twitterを例にしてみます。

ユーザはツイートすることができますし、いいねすることができます。ツイートは何回でもできますが、いいねは1つのツイートに対して1回だけしかできません。

いいねしたツイートに対していいねをもう一回押せばいいねが消えます。
ツイートやいいねなどのデータを作る役割がモデルにはあったり、
いいねが1回しかできない、2回いいね押すと消えるなどのロジックがモデルにはあります。

モデルはデータを作ったり、どういう条件で〇〇するなどのロジックを書く場所だと思って問題ありません。

ビュー

これはユーザが目にする部分です。

デザインであったりフォームであったり、Twitterのプロフィールやツイートの一覧などビューとなります。
ビューは一つページ思えば良いでしょう。ま、画面のことですね。

これがTwitterのプロフィールのビューとなります。

コントローラ

最後はコントローラです。これはビューとモデルとの仲介役です。

例えばツイッターのプロフィールのビューは、

  1. ユーザはコントローラに対してプロフィールの情報がほしいとリクエストをします
  2. コントローラはそのリクエスト通り、プロフィールに関するデータやロジックなどを持っているモデルに対して、〇〇アカウントのプロフィールをよこせといいます
  3. モデルはコントローラに命令されたとおり該当するプロフィールをコントローラに渡します
  4. その後コントローラはプロフィールのビューに取得したデータを渡します

コントローラをビューとモデルの間に挟むことによって、柔軟にいろいろなリクエストに答えていくことができます。上の例ではプロフィールだけでしたが、ツイート情報やいいね情報もほしい場合にコントローラはツイート関連のモデルやいいね関連のモデルを呼び出すことで、色々なビューの要望に答えることができます。

これでMVCの概要は把握できたと思うので、次回よりコントローラやビュー、モデルを使って理解を深めて行きましょう。
まずはコントローラだけを使ってルーティングという処理を行っていきます。

シェアしてね〜🤞
PHPのMVCフレームワーク 「Laravel 9.x 」超入門 セットアップから基本構文まで
1. LaravelにおけるMVCとは?図解してみた
2. Laravelのルーティングからコントローラを呼出し、値をビューに渡す
3. Laravelのルーティングの仕組みと一番簡単な使い方
4. Laravelのモデル作成前にDBを用意して、DBの接続確認を行う
5. Laravel Eloquentモデルを使ってデータを取得して、viewに表示してみる
6. Laravel Eloquentでデータを追加・更新・削除を行う
7. Laravelでバリデーション実装!エラーメッセージを日本語で表示