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

來源:互聯網
上載者:User
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裡"共用".

肯定在控制器裡面操作

加粗文字請輸入代碼

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.