[MVCモデル]とは?Laravelにも使われる概念を初心者に向けて解説
コラム![](https://tetraup.com/news_topics/wp-content/uploads/2024/09/大人開発系テンプレ-980700-1.jpg)
今回はLaravelにも使われている「MVCモデル」と呼ばれるアーキテクチャ(構造)について解説します。
「そもそもMVCとはなんのこと?」
「MVCとは何を行っているの?」
という方に向けて、MVCモデルの概要とそれぞれの役割について、主に下記の2点について解説します。
- MVCとは?
- MVCのそれぞれの役割
前回はルーティングについて解説しました。ルーティングについては前回の記事Laravelのルーティングの書き方とパラメータの使い方にて解説しています。
1.MVCとは?
MVCとは(Model-View-Controller)の略で、処理をモデル(Model)、ビュー(View)、コントローラ(Controller)の3つに分けて記述する考え方です。機能ごとにファイルを分けることによって処理を見やすくしています。
3つそれぞれの役割は、おおまかに以下のようになっています。
- モデル(Model):データベース系の処理を行う
- ビュー(View):画面表示を行う
- コントローラ(Controller):モデルとビューの橋渡しなど、全体の制御を行う
では、「Model」、「View」、「Controller」それぞれの役割について解説します。
2.MVCのそれぞれの役割
2-1.モデル(Model)
モデル(Model)とは、「データベースとのアクセスの処理」を担当しています。
![モデルイメージ](https://tetraup.com/news_topics/wp-content/uploads/2020/12/model-image.jpg)
Controllerからデータを受け取る命令が出され、命令に合うデータをデータベースから探します。そして受け取ったデータをControllerに送ります。
2-2.ビュー(View)
ビュー(View)とは、「Webブラウザに表示する見た目の生成」を担当しています。
![ビューイメージ](https://tetraup.com/news_topics/wp-content/uploads/2020/12/view-image.jpg)
まずルーティングで、アドレスとControllerのアクションメソッドを紐付けます。ルーティングに関してはLaravelのルーティングの書き方とパラメータの使い方にて解説しています。
ユーザーがリクエスト(アドレスにアクセス)するとControllerのアクションメソッドの処理が実行されます。
Controllerがリクエストに合うデータをViewに渡します。
ViewがControllerから受け取ったデータをレンダリング(見た目を整えて表示)してユーザーに渡します。
2-3.コントローラ(Controller)
コントローラ(Controller)とは、「ユーザーからリクエストを受け取り、ModelとViewの橋渡し」を担当しています。
![コントローライメージ](https://tetraup.com/news_topics/wp-content/uploads/2020/12/controller-image.jpg)
ユーザーからのリクエストを受け取り、リクエストに合うデータをモデル経由で受け取ります。その後モデル経由で受けとったデータをViewに渡します。
まとめ
いかがでしたでしょうか?今回はMVCの概要とそれぞれの役割を解説しました。まとめると下記の4点です。
- MVCとは、処理を3つに分けて記述する考え方
- Modelとは、「データベースとのアクセスの処理」を担当
- Viewとは、「Webブラウザに表示する見た目を生成」を担当
- Controllerとは、「ユーザーからリクエストを受け取り、ModelとViewの橋渡し」を担当
Laravelで開発を行うにはMVCの知識が必要になってきます。MVCそれぞれの役割をしっかり理解し、効率的にアプリケーションの開発をしましょう!
![](https://tetraup.com/news_topics/wp-content/uploads/2024/09/sm.jpg)
株式会社Knocknote代表取締役。大学卒業後不動産営業に従事した後、ITの重要性を強く感じエンジニアへ転職。ソーシャルゲーム開発、スマホアプリやPepperアプリの企画及び開発、高校でのプログラミング講師などの業務に携わる。2017年1月に創業。現在はプログラミング教育事業、システム開発事業を展開。今後は海外向けの教育事業をさらに拡大させていく事が目標。著書:『作って学べるUnity超入門』(技術評論者)