从codeigniter中的视图调用模型是坏的吗?

时间:2013-03-09 23:58:13

标签: php model-view-controller codeigniter-2

好的我一直在使用代码点火器创建一个小型测试站点,到目前为止我已经完成了登录和注销。这些都遵循适当的MVC我认为控制器中的逻辑,模型中的实际工作和视图中的表示。但是,当在前端站点中包含新闻源等操作时,我遇到了问题,无需登录。我只想在Home视图中调用负责显示新闻提要的模型。这是不好的做法吗?基本上什么是在登录时显示动态内容的最佳方式,如新闻Feed甚至是用户照片?

2 个答案:

答案 0 :(得分:1)

这是非常错误的。

在理想的世界中,所有功能,数据调用,操作,数据插入等都将出现在模型中。

控制器用于决定模型中需要哪些调用并来回传递数据。在这一点上,控制器可以收集视图所需的信息并将其传递给它们。

视图中唯一的逻辑是if / else和每个循环。我在进入视图之前“准备好”我的所有数据,因此日期格式化,空值处理等也已完成,因此我的视图只不过是带有一些名称的简单HTML; ?>类型变量。

答案 1 :(得分:0)

在正确实现的受MVC启发的设计模式中,视图负责从模型层获取信息并创建响应(如果需要,可以从多个模板中创建)。这意味着,对于从模型层请求数据的视图,这是正确的做法。

你应该避免的是改变模型层状态的操作,因为那部分是控制器的责任。

另一件需要注意的事情是,仅当您拥有真实的视图实例时才适用。 CodeIgniter称之为“视图”的东西只不过是一堆愚蠢的模板。模板不应该从任何地方请求任何数据。