【问题标题】:Advice when using MVC with php将 MVC 与 php 一起使用时的建议
【发布时间】:2010-07-22 10:51:26
【问题描述】:

使用其中包含 2 个函数的一个视图文件是否正确。

例如,我的数据库中有项目表,并且我在视图文件中有 2 个函数用于这个特定的 MySQL 查询。

每个查询都会返回一个特定的视图

函数 1 = num_rows 函数 2 = 行内的数据

这是正确的还是我应该做一些不同的事情?

【问题讨论】:

  • 你用的是什么mvc框架?只是好奇

标签: php model-view-controller mysqli


【解决方案1】:

您的视图文件中不应包含函数。

MVC 的思想是将模型分离,例如与表示层表示无关的所有内容(由 V 和 C 表示)。 M 应该忽略 V 和 C。

控制器处理对表示层/用户界面的任何输入。它委托给模型并将模型返回的任何内容设置给视图。

视图负责渲染模型数据和用户界面。如果您需要在 View 中拥有功能,最好将它们保存在 View Helpers 中。

请参阅Web Presentation Patterns in PoEAA,了解有关如何最好地渲染视图的一些想法。 Parts of the book are available on Google Books.

【讨论】:

  • 你能再解释一下吗,我的视图文件有来自查询的循环,就是这样,
【解决方案2】:

这种类型的函数不属于视图。唯一属于视图的代码是结构化数据所需的代码。

这类函数属于模型,因为它作用于数据。

也许您应该看看Model–view–controller Article on Wikipedia (http://en.wikipedia.org/wiki/Model–view–controller) 以更好地了解 MVC。

抱歉,由于某种原因,我无法创建指向 wiki 页面的真正链接。

【讨论】:

  • 所以,如果我在模型中有查询,如果我不能将循环放在视图中,我该如何打印结果?
  • 为什么不能在视图中循环播放?这属于“唯一属于视图的代码是结构化数据所需的代码”类别。
  • 您可以在视图中使用基本的控制结构:if..then..else、for 循环等。只要不在那里执行查询并且您只是将结果传递给视图.
  • 循环不是函数。这是一个控制结构。
  • 我已经将循环放在一个函数中,这样我就可以调用它而不是使用包含。
猜你喜欢
  • 1970-01-01
  • 2014-11-15
  • 1970-01-01
  • 2011-02-25
  • 2020-08-18
  • 1970-01-01
  • 1970-01-01
  • 2011-12-11
  • 1970-01-01
相关资源
最近更新 更多