【发布时间】:2018-05-08 06:51:10
【问题描述】:
我在理解如何在我的注册系统上下文中使用模型视图控制器时遇到问题。据我了解,视图已加载,向用户显示我的注册 html 表单。一旦用户点击提交,我就有一个 javascript 注册类,它使用 ajax 来处理用户输入的数据的 POST。我的主要 index.php 文件有通常的
if(isset($_POST['action'])) {
if($_POST['action'] == "register") {
// send the data to the model
}
}
模型将处理所有与数据库相关的注册逻辑,并返回一条消息,指示成功或失败。此消息由我的注册 javascript 类中的 ajax 捕获,它更新一些视图 HTML 以告诉用户注册是成功还是失败(有效的电子邮件等)。
我的主要问题是为什么我的视图需要参考模型,就像我看到的每个示例一样。以及上面注册系统的哪一部分是控制器应该处理的。
【问题讨论】:
-
这很模糊。通常,view 需要引用 model 来呈现自身。
-
控制器跟踪什么模型与什么视图一起工作。视图不应直接与模型通信。此逻辑应位于控制器中。当模型返回一些数据(在您的情况下是成功或错误消息)时,控制器会检查注册到此的视图,并更改视图。
-
MVC 并没有真正考虑到网络,因此它在网站上的任何应用都是主观的(因此您的问题没有明确的答案)。由于这个原因,我最初发现很难理解它。我发现学习 MVP 更有用,它更接近人们在将 MVC 应用于网站应用程序时使用的内容。我对它的使用是 Presenter only 管理模型,然后加载适当的视图。视图是 HTML、XML 等。其他所有内容(例如引导程序和路由器)都不是 M、V 或 P,我将其称为“应用程序”。
标签: javascript php ajax html model-view-controller