iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
Modern Web

後端菜雞仔想學 Laravel系列 第 8

Laravel 的 MVC 架構設計模式

  • 分享至 

  • xImage
  •  

今天我們來簡單介紹一下 Laravel 的 MVC 架構,也就是 Model(模型)、View(視圖)、Controller(控制器)之間的關係。

MVC 是一種常見的設計模式,讓應用程式的邏輯與使用者界面分離,從而達到更好的維護性。

Model(模型)

:是資料的容器,處理資料庫互動,將從資料庫拿出來的資料放在這裡。

View(視圖)

:是提供使用者看到的畫面。

Controller(控制器)

:負責處理請求,並根據需求來決定使用哪個 Model 或 View。

我的理解

例如:當我點開這個網站所呈現的首頁
這個動作的解析如下:

  1. 當使用者從瀏覽器發送一個請求(request)
  • 代表:我點開這個網站
  1. 這個請求會先經過 Controller,Controller 會判斷需要從哪個 Model 中取得資料
  • 代表:網站需要呈現的首頁內容
  1. 將這些資料傳送給 View 來處理呈現給使用者的畫面並回傳給瀏覽器
  • 代表:我眼睛看到網站所呈現的首頁畫面

可以參考這篇文章:後端工程師的第一堂課 (19) : 現代系統架構 — MVC

有了基礎概念後可以延伸閱讀:菜鳥工程師紀錄工作所學-EP2.Laravel 進階 MVC 架構設計


昨天在設計 RESTful API 時,定義資源這個部份有說到:資源是系統中可以操作或查詢的資料,可以想像成系統的核心。
那這個核心資料,就是我們的 Model 。

所以,我的「線上產品瀏覽系統」的核心資料就是「產品」這個 Model。

操作「產品」的動作(Action)有:新增、查詢、修改、刪除
也就是使用 Http method,去對應到資料庫的 CRUD 操作。

那來試試看建立「產品」這個 Model 及其他相應檔案吧!

建立Model

現在要建立的是一個叫做 Product 的 Model。

輸入指令:

php artisan make:model Product -rmc

此指令會在 Laravel 專案中建立一個名為 Product 的 Model,並同時「載入預設CRUD方法」建立以下檔案:

  • Migration
  • Controller

因為載入預設CRUD方法,所以打開 ProductCotroller.php 可以看到已經有很多方法寫在裡面,對應到資料庫的 CRUD 操作。

明天可以來接著介紹 Migration 跟 Controller!


上一篇
API & RESTful API? 設計你的 API
下一篇
Migration & 資料庫設計
系列文
後端菜雞仔想學 Laravel30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言