首頁 >後端開發 >php教程 >mvc模式中的model的作用的疑問

mvc模式中的model的作用的疑問

WBOY
WBOY原創
2016-10-17 09:30:061384瀏覽

mvc中的m(model)代表模型,主要用來操作數據,那麼對數據進行簡單處理到底應該在C層還是在M層呢。

<code>$sql = "SELECT id, name FROM test_table"
$result = $conn->query($sql);
$data = $result->getAll();</code>

在上述程式碼中,假如我需要把data改成以id為鍵的數組,那麼這個操作應該在m層還是在c層呢?

回覆內容:

mvc中的m(model)代表模型,主要用來操作數據,那麼對數據進行簡單處理到底應該在C層還是在M層呢。

<code>$sql = "SELECT id, name FROM test_table"
$result = $conn->query($sql);
$data = $result->getAll();</code>

在上述程式碼中,假如我需要把data改成以id為鍵的數組,那麼這個操作應該在m層還是在c層呢?

個人觀點:M層比較好
你既然用MVC了,就是為了降低耦合程度,提高可擴展性。
混著寫的話不利於以上兩個目的。
當然如果本身項目不大的話,其實也沒必要用mvc結構。

根據你的範例裡面的問題,我覺得你可以用closure function 的辦法來做,例如model class 裡面定義一個dataFormat的方法,然後呼叫回傳資料的時候呼叫一下,這個dataFormat再使用你傳入類別的closure function 來處理你這個回傳數據,這樣比較靈活

其實都行,具體看你的介面需求,不用太糾結!因為這個問題我也問過我老師,我說C層是負責控制頁面跳轉以及封裝請求數據調取接口,而M層是對C層調用接口參數校驗以及數據處理返回,那具體是什麼業務邏輯放在哪裡,其實這都是我們根據自己設計程式的需求去做的

所以不用太糾結

model的出現就是為了把資料層全部控制在model,為什麼要這樣做?

<code>耦合性降低了、可读性、维护、扩展性都得到了提高。
</code>

mvc 的 c 是拿來銜接model和view的

MVC的核心思想是分離介面(View),邏輯(Controller),資料(Model).
對於Web應用來說,過程就是C呼叫M輸出V.

頁面控制器:

<code>/post.php?a=create
/post.php?a=read&id=1024
/post.php?a=update&id=1024
/post.php?a=delete&id=1024</code>

模型(CRUD):

<code>function post_create() {}
function post_read() {}
function post_update() {}
function post_delete() {}</code>

視圖:
/view/post.php

可見對資料模型post的CRUD操作函數當然還是匯總在/include/funclass.php中好,方便在其他控制器中也能調用.總之就是你覺得你這個操作其他控制器也需要用到,那你就可以考慮封裝成函數或類別放到funclass.php裡"共享".

一定在控制器裡面操作

加粗文字請輸入代碼



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn