我通常知道数据通过控制器传递到视图。但是,目前在我看来我加载了我的模型($ this-> load-> model('Db_model');)所以我可以在循环中使用它从ID数组中检索用户个人资料图片路径从控制器传来。是否在视图中加载db模型以实现此目的会使我的网站更容易受到攻击?对我而言,它似乎不属于MVC概念,而是它的工作原理。谢谢
答案 0 :(得分:5)
我同意,但它与规模有关。如果你正在设计一个小应用程序MVC并不重要,因为它很容易监督整个应用程序。然而,一旦应用程序开始增长,或者如果您正在构建更大的应用程序,MVC分离变得更加重要。
例如,如果您在视图中使用模型,这意味着设计团队必须了解模型。它也可能妨碍以后将视图移植到另一个框架或交换模板。
答案 1 :(得分:3)
如果你在MVC之外做一些事情,那并不意味着它会在同一秒内停止工作。 MVC只是一种设计模式,可以帮助您设计和维护您的网站。基本原则是模型应该只与控制器进行通信,并且只能与控制器进行通信,因此您直接从视图调用模型的想法不是MVC的处理方式。
如果您需要模型中的其他数据,为什么不在控制器中获取它并将其作为另一个参数传递给视图,以便它可以轻松使用它?它可能是相同数量的代码,您的代码将更清晰。保持你的代码清洁可能看起来并不是什么大问题当你记得所有东西都存储在哪里但是在几个月你忘记了这些东西时,如果你把你的应用程序弄得太乱,你可能会头疼。
答案 2 :(得分:0)
了解图书馆。您应该考虑创建一个库类助手来显示配置文件图片。然后,您可以让库调用模型。然后,在您看来,您只需执行以下操作:
<?php $this->profile_helper->display_picture(); ?>
profile_helper 是您的图书馆类, display_picture()是您显示用户个人资料的类功能。