视图如何与MVC中的控制器通信?

时间:2014-07-28 09:48:50

标签: model-view-controller view controller

我试图在没有框架的情况下理解和使用MVC,直到现在我清楚地了解模型,视图和控制器的作用以及它们是如何制作的,但我有一个问题。如果控制器是一个类在w视图中的每个动作的方法,并在该方法中我们与模型通信并询问一些数据或发送一些数据,然后将该数据发送到我们选择显示我的问题的视图是我们如何从视图中调用该方法需要从视图向控制器发送一些数据吗?假设我们有一个包含所有用户的页面,当我们点击一​​个用户时,我们想要关于他的信息,我们发送他的id用post或get,我们有一个带有GetUserInformation方法的UserController与模型通信发送id接收信息将其设置为视图并调用view()来显示信息。但是当客户端点击该用户时我们如何从视图中调用此方法?我们在它们之间创建了另一个文件并将用户发送到那个文件和我们实例化的那个文件ea控制器对象并调用方法?但是如果我们这样做,那么在MVC中如何调用该文件呢?当我们需要从控制器调用方法并发送一些方法时,有很多例子,如登录,添加用户等等数据或只是在没有发送数据的情况下调用它,一般的ideea是我们如何在html页面中的操作上从控制器对象调用方法?

1 个答案:

答案 0 :(得分:0)

  

由于您有多个 php 帖子,我将假设您指的是在Web应用程序的上下文中实现MVC或MVC启发的体系结构。

首先:控制器不负责,用于将数据从模型层(不是"模型类")传递到当前视图。 MVC中的控制器仅负责根据用户的输入改变模型层的状态(在极少数情况下 - 当前视图的状态)。

你必须要了解的第二件事是php的请求 - 响应特性。您的应用程序中的实例不会超过网站代码的执行。

对于视图,它的任务是创建一个响应,并将其发送给用户。 "用户"对于您的Web应用程序不是人。相反,实际获得响应的是浏览器。浏览器无法获得"视图" 。它只接收视图产生的响应。

因此:

在正确实现的基于MVC的Web应用程序中,不可能在视图上调用控制器上的方法,因为:

  • 您没有与视图互动,但有回复
  • 视图和控制器都已被销毁
  

PS:一开始你写了"直到现在我清楚地了解模型,视图和控制器的作用是什么以及它们是如何制作的#34; ,但这显然是不真实的。