2013-03-09 60 views
1

好吧我一直在使用代码点火器创建一个小测试网站,到目前为止我已经完成了我的登录和注销。这些都遵循正确的MVC我认为与控制器的逻辑,模型中的实际工作和视图中的表示。但是,当我在前台添加新闻提要等内容时,我遇到了问题,无需登录。我正在考虑在负责显示新闻馈送内容的模型的主视图中打一个电话。这是不好的做法吗?基本上什么是最好的方式显示动态的东西,如新闻提要,甚至登录时用户的照片?从codeigniter中的视图调用模型不好?

+0

它通常皱起了眉头。您应该让您的控制器与您的模型进行交谈,并将要打印的数据收集到一个将传递给您的视图的变量中。 – Daedalus 2013-03-10 01:30:52

回答

1

这是非常错误的。

在一个理想的世界中,所有的函数,数据调用,操作,数据插入等将在模型中。

控制器用于决定需要来自模型的呼叫并来回传递数据。在这一点上,控制器可以收集视图所需的信息并将它们传递给前端。

您的视图中唯一的逻辑是if/else和每个循环。我在准备好所有的数据之前先准备好数据,以便日期格式化,空值处理等工作,这样我的视图只不过是纯粹的HTML,只有一小部分的名称; ?>类型变量。

+1

这不是什么控制器或视图负责。请了解MVC中的每个部分是什么**实际**负责。 – 2013-03-10 14:46:48

+0

在Codeigniter环境中,这是如何处理的。你在下面提到。 – AlunR 2013-03-10 20:13:50

0

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

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

另一件需要注意的事情是,这只适用于具有真实视图实例的情况。 CodeIgniter所称的“视图”只不过是一堆哑巴模板。模板不应该从任何地方请求任何数据。