CodeIgniter视图加载未按顺序加载


CodeIgniter view loading not loading in order?

我在CodeIgniter中有一个控制器,代码如下:

$this->load->view("first");
echo "LOL";
$this->load->view("second");

但奇怪的是,当页面被渲染时,HTML是:

LOL
<div id="firstView"></div>
<div id="secondView"></div>

我不知道是什么原因导致了这些语句的重新排序。有什么建议吗?我可能忽略了什么?

在代码点火器中渲染视图在最后完成。如果你想在你走的时候渲染它们,你可以做

echo $this->load->view("first", array(), true);
echo "LOL";
echo $this->load->view("second", array(), true);

很简单:

$this->load->view("...");

不会立即显示视图。这种情况稍后会发生,这是MVC框架的好处之一。

要实现您正在尝试的目标,您必须向函数$this->load->view(…)传递第三个参数,表示您将在变量中接收视图,而不是立即显示它。

像这样:

echo $this->load->view("first", NULL, TRUE);
echo "LOL";
echo $this->load->view("second", NULL, TRUE);

查看第三个参数TRUE(第二个是要传递给它的所有变量)。不要忘记打印带有回声的视图结果。如果您想存储视图并对其进行处理,或者按所需顺序打印,这将非常有用。

这里有一种更优雅的方法:

$this->load->view("first");
$this->output->append_output("LOL");
$this->load->view("second");

使用它可以减少将预先编写的$this->load->view语句重写为echos。希望能有所帮助。