Laravel 的 MVC 模型

MVC 設計模式

在介紹 Laravel 的 MVC 模型之前,先簡單說明一下 MVC 的觀念,因為 Laravel 並不是一個符合真正 MVC 設計模式的框架。

MVC 是一種設計模式,是眾多設計模式中的一種。根據 Wiki 上的說明[1],正確的 MVC 實作是,View 和 Model 必須以觀察者模式實作,也就是當 Model 的資料有所改變時,會通知 View 來做出反應。而 Laravel 的模型中並沒有這麼做,所以它其實嚴格來說並不符合 MVC 設計模式,我們只能說它是借用將 Model(資料)、View(畫面)和 Controller(控制器)分離這個概念,來實作的網頁框架。如果有興趣,可以自行找資料做更深入的研究。

Laravel 的框架模型

看這張圖就可以馬上了解 Laravel 的模型是如何傳遞訊息及資料。

  1. 當使用者輸入網址送出請求時,Routing 會分配這個網址由哪個 Controller 來處理。

  2. Controller 會透過 Model 取得資料。Model 是一個 PHP 物件,負責處理和資料庫的互動。

  3. Controller 在取得資料後,會將資料送給 View,這個 View 會被 Blade 樣板系統轉換成靜態的 HTML 文件,最後送回給瀏覽器,瀏覽器將解析這個 HTML 頁面後的畫面呈現給使用者。

只要懂了這四個主要機制是如何互相合作的,各自的任務是什麼,就能夠快速上手 Laravel 了。