我通常知道數據通過控制器傳遞給視圖。然而,目前在我看來我加載我的模型($ this-> load-> model('Db_model');),所以我可以在循環中使用它來從傳遞的ID數組中檢索用戶配置文件圖片路徑控制器。在視圖中加載數據庫模型來完成這個操作會使我的網站更易受攻擊或者形式不良?對我來說,它似乎超出了MVC的概念,但它的工作原理。謝謝在codeigniter的視圖中直接使用模型不好嗎?
回答
那麼如果你在MVC之外做某件事,那並不意味着它會在同一秒停止工作。 MVC只是一個設計模式,可以幫助您設計和維護您的網站。基本原則是模型只能與控制器通信,並且只能與控制器一起查看,所以你直接從視圖調用模型的想法不是MVC的做事方式。
如果您需要模型中的一些附加數據,爲什麼不在控制器中獲取它並將其作爲另一個參數傳遞給視圖,以便它可以輕鬆使用它?它可能會是相同數量的代碼,並且您的代碼將會更清晰。保持代碼清潔可能看起來不像是一件大事,你知道什麼時候你記得所有東西都存儲在哪裏,但是在幾個月內,如果你忘記了一些這些東西,那麼如果你的應用程序太亂了,你最終會頭痛不已。
我同意,但它與尺度有關。如果你正在設計一個小應用程序MVC並不重要,因爲它很容易監督整個應用程序。但是,一旦應用程序開始增長,或者如果您正在構建更大的應用程序,MVC分離變得更加重要。
例如,如果您在視圖中使用模型,這意味着設計團隊必須瞭解模型。它也可能妨礙將視圖稍後移植到另一個框架或交換模板。
我相信技術上,如果模型用於只讀行爲,那麼你可能仍然認爲它是MVC。事實上,這聽起來像是一個好主意,控制器從來不需要知道。 – Natebot 2010-06-10 06:25:57
調查圖書館。您應該考慮創建一個庫類助手來顯示個人資料圖片。然後你可以讓庫調用模型。然後,在你看來,你只需要做:
<?php $this->profile_helper->display_picture(); ?>
其中profile_helper是你的庫類和display_picture()是你的類函數來顯示用戶的個人資料。
- 1. 直接在模型上建立視圖在Codeigniter中?
- 2. 從codeigniter中的視圖調用模型不好?
- 3. 視圖直接使用域模型有危險嗎?
- 4. 在codeigniter中,最好使用模型或數據庫視圖和存儲過程?
- 5. MVC視圖直接與模型交互 - 好還是壞?
- 6. 我應該在不同視圖中重用視圖模型嗎?
- 7. CodeIgniter調用模型的視圖?
- 8. 在視圖中使用CodeIgniter自動加載模型
- 9. 在CodeIgniter的模型中加載庫是一個好主意嗎?
- 10. 這是在CodeIgniter中使用控制器和視圖的好方法嗎?
- 11. RxSwfit:訂閱視圖控制器視圖模型是不好的做法嗎?
- 12. 視圖模型和視圖中直接提到的實體是可以接受的嗎?
- 13. 讓存儲庫直接在視圖模型中實例化
- 14. 直接在視圖中綁定模型屬性
- 15. 如何在佈局中直接獲取視圖模型?
- 16. codeigniter - 在視圖中調用模型的功能
- 17. ASP.NET MVC在不同視圖中使用視圖模型
- 18. 如何在視圖中創建多個模型?最好使用部分視圖和動態數量的模型
- 19. 使用模型視圖的好處Presenter設計模式(MVP)
- 20. 直接設置視圖內容而不是使用模板
- 21. 在直接的html或css中定義圖像會更好嗎?
- 22. 我應該直接從視圖中使用Response.Write嗎?
- 23. PHP MVC - 使用不直接與同名控制器相關的模型是不好的做法嗎?
- 24. 在視圖模型中使用存儲庫可以嗎?
- 25. 在軌道中使用視圖模型嗎?
- 26. 你可以在ASP.net MVC3中使用嵌套視圖模型嗎?
- 27. Rails /在視圖中使用模型
- 28. 在knockout.js中使用多視圖模型
- 29. 垂直列表視圖中水平列表視圖的模型
- 30. 我可以在視圖模型位圖上使用MvxImageView嗎?
好問題!我認爲答案在技術上應該是肯定的,但是我也這麼做很方便,尤其是對於循環大型複雜的數據集。 – Kurucu 2010-06-06 09:28:44