簡體   English   中英

MVC Patern,視圖中的模型

[英]MVC Patern, Model in the View

我使用PHP,並且了解MVC的工作原理。 關於MVC我不確定一件事。 因為有時不需要在Controller中處理Model,所以直接在View中創建Model對象而不將其通過Controller是一個好習慣嗎? 這樣做有什么缺點嗎?

它違反了MVC的概念

不要試圖破壞體系結構

模型 - 模式的最低級別,負責維護數據。

視圖 -這負責向用戶顯示全部或部分數據。

控制器 -控制模型與視圖之間交互的軟件代碼。

在此處輸入圖片說明

這里參考

您的view僅顯示結果,因此new Model()必須轉到控制器,然后再傳遞給視圖。

是的-您的視圖不必依賴模型保持不變。

舉例來說,您使用的模型具有->forename->surname屬性。 在您看來,您只需直接調用它們即可。

然后,您稍后決定要向模型中添加變量和訪問器(getter和setter),因此將使用->getForename()->getSurname()因為您要對它們以確保大寫正確。

現在,您需要遍歷所有控制器視圖,因為用法需要更改。

相反,如果您只需要在控制器中完成所有模型處理,然后將一組標准化的數據傳遞給視圖,則只需更新控制器即可。

視圖不應該期望模型的任何內容,它只需要從控制器獲取特定數據即可。

您可以在Controller中執行以下操作:

$view = new View('my.file', [
    'user' => [
        'forename' => $user->forename,
        'surname' => $user->surname,
    ],
] );

這仍然會為您提供$user['forename']以便在您的View中使用,但是現在該數據的格式來自Controller,而不是Model。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM