Laravel 的 MVC 模型
Last updated
Last updated
在介紹 Laravel 的 MVC 模型之前,先簡單說明一下 MVC 的觀念,因為 Laravel 並不是一個符合真正 MVC 設計模式的框架。
MVC 是一種設計模式,是眾多設計模式中的一種。根據 Wiki 上的說明[1],正確的 MVC 實作是,View 和 Model 必須以觀察者模式實作,也就是當 Model 的資料有所改變時,會通知 View 來做出反應。而 Laravel 的模型中並沒有這麼做,所以它其實嚴格來說並不符合 MVC 設計模式,我們只能說它是借用將 Model(資料)、View(畫面)和 Controller(控制器)分離這個概念,來實作的網頁框架。如果有興趣,可以自行找資料做更深入的研究。
看這張圖就可以馬上了解 Laravel 的模型是如何傳遞訊息及資料。
當使用者輸入網址送出請求時,Routing 會分配這個網址由哪個 Controller 來處理。
Controller 會透過 Model 取得資料。Model 是一個 PHP 物件,負責處理和資料庫的互動。
Controller 在取得資料後,會將資料送給 View,這個 View 會被 Blade 樣板系統轉換成靜態的 HTML 文件,最後送回給瀏覽器,瀏覽器將解析這個 HTML 頁面後的畫面呈現給使用者。
只要懂了這四個主要機制是如何互相合作的,各自的任務是什麼,就能夠快速上手 Laravel 了。