mvc中的m(model)代表模型,主要用來操作資料,那麼對資料進行簡單處理到底應該在C層還是在M層呢。
$sql = "SELECT id, name FROM test_table"$result = $conn->query($sql);$data = $result->getAll();
在上述代碼中,假如我需要把data改成以id為鍵的數組,那麼這個操作應該在m層還是在c層呢?
回複內容:
mvc中的m(model)代表模型,主要用來操作資料,那麼對資料進行簡單處理到底應該在C層還是在M層呢。
$sql = "SELECT id, name FROM test_table"$result = $conn->query($sql);$data = $result->getAll();
在上述代碼中,假如我需要把data改成以id為鍵的數組,那麼這個操作應該在m層還是在c層呢?
個人觀點:M層比較好吧
你既然用MVC了,就是為了降低耦合程度,提高可擴充性。
混著寫的話不利於以上兩個目的。
當然如果本身項目不大的話,其實也沒必要用mvc結構。
根據你的樣本裡面的問題,我覺得你可以用closure function 的辦法來做,比如model class 裡面定義一個dataFormat的方法,然後調用返回資料的時候調用一下,這個dataFormat再使用你傳入類的closure function 來處理你這個返回資料,這樣比較靈活
其實都行,具體看你的介面需求,不用太糾結!因為這個問題我也問過我老師,我說C層是負責控制頁面跳轉以及封裝請求資料調取介面,而M層是對C層調用介面參數校正以及資料處理返回,那具體是什麼商務邏輯放在哪裡,其實這都是我們根據自己設計程式的需求去做的
所以不用太糾結
model的出現就是為了把資料層全部控制在model,為什麼這樣做?
耦合性降低了、可讀性、維護、擴充性都得到了提高。
mvc 的 c 是拿來銜接model和view的
MVC的核心思想是分離介面(View),邏輯(Controller),資料(Model).
對於Web應用來說,過程就是C調用M輸出V.
頁面控制器:
/post.php?a=create/post.php?a=read&id=1024/post.php?a=update&id=1024/post.php?a=delete&id=1024
模型(CRUD):
function post_create() {}function post_read() {}function post_update() {}function post_delete() {}
視圖:
/view/post.php
可見對資料模型post的CRUD操作函數當然還是匯總在/include/funclass.php中好,方便在其他控制器中也能調用.總之就是你覺得你這個操作其他控制器也需要用到,那你就可以考慮封裝成函數或者類放到funclass.php裡"共用".
肯定在控制器裡面操作
加粗文字請輸入代碼