为什么控制器需要访问Web PHP MVC中的模型?

时间:2014-08-21 10:53:19

标签: php model-view-controller web model controller

如果控制器只能访问视图(下图中的图#2)并且视图可以访问模型,为什么MVC不能正常工作?

在大多数网站上(包括Stack Overflow上的一些主题),我已经读过它应该如左图所示(图中的#1图)。

我添加了一张图片,以便您可以更好地理解我的问题(不要介意这是一个UML图表,只需将其视为常规图表)。

enter image description here

注意:当然,模型可以访问的是dataMapper,而init上方有frontControllercontroller等等。但我没有&#39} ; t将它们添加到图像中以使其尽可能简单。

1 个答案:

答案 0 :(得分:3)

如果仅仅是显示数据,那么原理图应该是控制器调用视图,视图从模型中获取数据以显示其状态。

但是,控制器通常会在模型状态下触发更改。例如。用户要求登录,发布新条目,删除旧条目或由传入请求触发的任何其他类型的更改。控制器将这些“写入请求”传播到适当的模型方法,并根据结果决定应该做什么。视图是“只读”,处理此类事情不是它的工作。