[英]MVC Patern, Model in the View
我使用PHP,并且了解MVC的工作原理。 关于MVC我不确定一件事。 因为有时不需要在Controller中处理Model,所以直接在View中创建Model对象而不将其通过Controller是一个好习惯吗? 这样做有什么缺点吗?
您的view
仅显示结果,因此new Model()
必须转到控制器,然后再传递给视图。
是的-您的视图不必依赖模型保持不变。
举例来说,您使用的模型具有->forename
和->surname
属性。 在您看来,您只需直接调用它们即可。
然后,您稍后决定要向模型中添加变量和访问器(getter和setter),因此将使用->getForename()
和->getSurname()
因为您要对它们以确保大写正确。
现在,您需要遍历所有控制器和视图,因为用法需要更改。
相反,如果您只需要在控制器中完成所有模型处理,然后将一组标准化的数据传递给视图,则只需更新控制器即可。
视图不应该期望模型的任何内容,它只需要从控制器获取特定数据即可。
您可以在Controller中执行以下操作:
$view = new View('my.file', [
'user' => [
'forename' => $user->forename,
'surname' => $user->surname,
],
] );
这仍然会为您提供$user['forename']
以便在您的View中使用,但是现在该数据的格式来自Controller,而不是Model。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.