1

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

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

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

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

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

4

4 回答 4

7

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

echo $this->load->view("first", array(), true);
echo "LOL";
echo $this->load->view("second", array(), true);
于 2013-07-02T09:03:32.153 回答
3

这很简单:

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

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

于 2013-07-02T08:58:17.187 回答
3

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

像这样:

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

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

于 2013-07-02T09:07:42.143 回答
1

这是一种更优雅的方法:

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

使用这将减少将预先编写的 $this->load->view 语句重写为回声。希望能帮助到你。

于 2014-04-03T14:53:33.370 回答