Php 从codeigniter中的模型构建视图

Php 从codeigniter中的模型构建视图,php,codeigniter,Php,Codeigniter,在查看框架时,我遇到了Codeigniter。我想知道在将结果传递给视图之前,为db的结果构建html输出的正确过程是什么。也就是说,我创建了一个模型,从db中获取行,在控制器中加载模型,然后将结果传递给视图,我希望使用结果构建视图,而不是循环结果并在视图本身中显示它。如果我要这样做,我会在控制器中创建一个私有函数来做吗?或者我应该在模型中这样做,还是应该在视图中这样做 我只是觉得这样做会比在视图中编写所有代码来显示结果更干净,因此,如果结果的显示发生了更改或显示在另一个页面上,我可以重新使用显

在查看框架时,我遇到了Codeigniter。我想知道在将结果传递给视图之前,为db的结果构建html输出的正确过程是什么。也就是说,我创建了一个模型,从db中获取行,在控制器中加载模型,然后将结果传递给视图,我希望使用结果构建视图,而不是循环结果并在视图本身中显示它。如果我要这样做,我会在控制器中创建一个私有函数来做吗?或者我应该在模型中这样做,还是应该在视图中这样做


我只是觉得这样做会比在视图中编写所有代码来显示结果更干净,因此,如果结果的显示发生了更改或显示在另一个页面上,我可以重新使用显示功能,而不是从视图中复制和粘贴代码。

我建议将视图特定的代码放进去,好吧视图

您可能认为它会使它更干净,因为它使您的视图看起来整洁,但老实说,一旦您有来自各个方向的视图输出,它可能会变得非常复杂,非常快


根据我的经验,对于返回的数据库对象,我几乎没有一个单一的、一致的表示形式。

我建议将特定于视图的代码放进去,好吧视图

您可能认为它会使它更干净,因为它使您的视图看起来整洁,但老实说,一旦您有来自各个方向的视图输出,它可能会变得非常复杂,非常快


根据我的经验,对于返回的数据库对象,我几乎没有一个单一的、一致的表示形式。

视图是呈现给用户的信息。这就是你应该循环你的结果的地方


查看更多有关模型、控制器和视图负责的内容的概述。

视图是向用户提供的信息。这就是你应该循环你的结果的地方

查看更多有关模型、控制器和视图负责的内容的概述

我只是觉得这样做会比在视图中编写所有代码来显示结果更干净,因此,如果结果的显示发生更改或显示在另一个页面上,我可以重新使用显示功能,而不是从视图中复制和粘贴代码

根本不需要这样做,只需将显示逻辑写入前面提到的视图文件,然后为每个要以相同方式显示结果的实例加载相同的视图文件

这正是视图层的用途:表示。请记住,您不需要每个页面都有单独的视图。同样,您可以为同一数据创建多个视图,以便在它们之间切换(甚至允许用户在它们之间切换)

我只是觉得这样做会比在视图中编写所有代码来显示结果更干净,因此,如果结果的显示发生更改或显示在另一个页面上,我可以重新使用显示功能,而不是从视图中复制和粘贴代码

根本不需要这样做,只需将显示逻辑写入前面提到的视图文件,然后为每个要以相同方式显示结果的实例加载相同的视图文件


这正是视图层的用途:表示。请记住,您不需要每个页面都有单独的视图。同样,您可以为同一数据创建多个视图,以便在它们之间切换(甚至允许用户在它们之间切换)。

目前为止,您同意这两种答案。最好的选择是在视图中-您的显示逻辑应该在视图中-因此,必须有一些代码。到目前为止,同意这两个答案。最好的选择是在视图中-您的显示逻辑应该在视图中-因此,一定有一些代码。@Francois Deschenes我读到了,我想我的困惑是,我认为视图是用户看到的最终结果,控制器是模型和视图之间的中间环节,可以生成代码传递到视图,而视图只是从控制器回显变量。在本例中,在我的OP中,我认为这就是我要做的,生成数据并将其传递给视图。@John-您正在使用模型在控制器中生成数据,并将数据传递给要渲染的视图。如果它包含一个数组,那么视图应该包含
foreach
循环。@Francois Deschenes问得这么快,那么,在模型中,我可以将结果从返回控制器传递回视图,然后通过它们进行循环吗?或者我必须首先通过模型循环结果并将其分配给一个数组,然后将该数组从每个循环的控制器传递到视图中吗?我在看一个教程,他们将结果放入模型中的一个数组中,然后将其传递回控制器,然后传递到视图,然后在结果中循环,这似乎是一个冗余的过程。@John-不需要在控制器中循环任何内容。如果要从多个模型(或从同一模型多次)中提取数据,则需要创建一个数组,其中包含加载视图时要传递给视图的所有数据。控制器的任务是检索和更新数据,模型的任务是定义数据,视图的任务是显示数据。@Francois Deschenes我的意思是在控制器中调用模型并运行返回模型内行的函数时,我可以将结果返回给控制器吗,将这些结果分配给一个数组,并将其传递给视图中的视图和循环?@Francois Deschenes我读到了这一点,我想我的困惑是,我认为视图是用户看到的最终结果,控制器是模型和视图的中间环节,可以生成代码传递到视图上,而视图只是简单地回显出来