CodeIgniter视图加载不按顺序加载?

时间:2013-07-02 08:55:37

标签: php codeigniter templates

我在CodeIgniter中有一个Controller,代码如下:

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

但奇怪的是,当呈现页面时,HTML是:

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

我不知道是什么导致这些陈述的重新排序。有什么建议?我可能忽视了什么吗?

4 个答案:

答案 0 :(得分:7)

最后在代码点火器中渲染视图。 如果你想要随时渲染它们,你可以做到

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

答案 1 :(得分:3)

很简单:

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

不会立即显示视图。这发生在后面,MVC框架的好处之一。

答案 2 :(得分:3)

要实现您的目标,您必须将第三个参数传递给函数$ this-&gt; load-&gt; view(...),表示您将在变量中接收视图,而不是立即展示它。

像这样:

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

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

答案 3 :(得分:1)

这是一种更优雅的方式:

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

使用此功能可以将预先写好的$ this-&gt; load-&gt;视图语句重写为回声。希望它有所帮助。