MVC Patern,视图中的模型

时间:2014-11-24 09:32:14

标签: php model-view-controller

我使用PHP并了解MVC的工作原理。有一点我不确定MVC。直接在视图中创建Model对象而不通过Controller传递它是一个好习惯,因为有时不需要在Controller中处理模型吗?这样做有什么不利之处吗?

3 个答案:

答案 0 :(得分:-1)

它反对 MVC

的概念

不要试图打破架构

模型 - 负责维护数据的模式的最低级别。

查看 - 负责向用户显示全部或部分数据。

控制器 - 控制模型和视图之间交互的软件代码。

enter image description here

参考Here

答案 1 :(得分:-2)

您的view仅显示结果,因此new Model()必须转到控制器,然后传递给查看。

答案 2 :(得分:-2)

是的 - 您的观点不应该依赖于模型保持不变。

比如说,您使用的是具有->forename->surname属性的模型。在您看来,您只需直接调用它们。

然后您稍后决定要为模型添加变更器和访问器(getter和setter),因此您将使用->getForename()->getSurname()因为您想要对它们进行一些预处理,以确保资本化是正确的。

现在您需要浏览所有控制器视图,因为需要更改使用情况。

如果您只是在控制器中完成了所有模型处理,然后将一组标准化数据传递给视图,那么您只需要更新控制器。

视图不应该对模型有任何期望,它应该只需要从控制器获取特定数据。

您可以在Controller中执行以下操作:

$view = new View('my.file', [
    'user' => [
        'forename' => $user->forename,
        'surname' => $user->surname,
    ],
] );

这仍然可以在您的视图中使用$user['forename'],但现在该数据的格式来自Controller,而不是模型。