Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter视图加载未按顺序加载?_Php_Codeigniter_Templates - Fatal编程技术网

Php CodeIgniter视图加载未按顺序加载?

Php CodeIgniter视图加载未按顺序加载?,php,codeigniter,templates,Php,Codeigniter,Templates,我在CodeIgniter中有一个控制器,代码如下: $this->load->view("first"); echo "LOL"; $this->load->view("second"); 但奇怪的是,当呈现页面时,HTML是: LOL <div id="firstView"></div> <div id="secondView"></div> LOL 我不知道是什么导致了这些陈述的重新排序。有什么建议吗?我可能忽略

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

$this->load->view("first");
echo "LOL";
$this->load->view("second");
但奇怪的是,当呈现页面时,HTML是:

LOL
<div id="firstView"></div>
<div id="secondView"></div>
LOL
我不知道是什么导致了这些陈述的重新排序。有什么建议吗?我可能忽略了什么吗?

很简单:

$this->load->view("...");
不会立即显示该视图。这种情况会在以后发生,MVC框架的好处之一是什么。

很简单:

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

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

在代码点火器中呈现视图的工作将在最后完成。 如果您希望按原样渲染它们,您可以这样做

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

在代码点火器中渲染视图在最后完成。 如果您希望按原样渲染它们,您可以这样做

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

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

像这样:

echo $this->load->view("first", NULL, TRUE);
echo "LOL";
echo $this->load->view("second", NULL, TRUE);
请看第三个参数TRUE(第二个参数是要传递给它的所有变量)。
别忘了用echo打印视图的结果。如果您希望存储视图并对其进行处理,或者按照您希望的顺序打印它们,这非常有用。

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

像这样:

echo $this->load->view("first", NULL, TRUE);
echo "LOL";
echo $this->load->view("second", NULL, TRUE);
请看第三个参数TRUE(第二个参数是要传递给它的所有变量)。
别忘了用echo打印视图的结果。如果您想存储视图并对其进行处理,或按您希望的顺序打印它们,这非常有用。

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

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

使用此选项将减少将预先编写的$this->load->view语句重写为echo。希望有帮助。

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

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


使用此选项将减少将预先编写的$this->load->view语句重写为echo。希望有帮助。

我通常使用echo语句来查看页面执行的流程。我想如果你不控制渲染不同元素的时间,我的策略就行不通了。我将不得不创建一个新的视图,除了测试文本什么都没有,只需加载它来检查执行顺序。使用日志文件、日志框架或任何东西!我希望CI有这样的功能您可以使用phpchrome之类的功能将变量等输出到开发人员控制台。我建议您只需加载一个视图,即可加载其中的其他视图。在一个控制器中加载多个视图在很多方面都是不合逻辑的。@RobinCastlin您能解释一下您的推理吗?如果我们只包含一个视图,我们会添加一个额外的抽象层,它不会增加任何优势,但会添加大量复制粘贴的代码。我想如果你不控制渲染不同元素的时间,我的策略就行不通了。我将不得不创建一个新的视图,除了测试文本什么都没有,只需加载它来检查执行顺序。使用日志文件、日志框架或任何东西!我希望CI有这样的功能您可以使用phpchrome之类的功能将变量等输出到开发人员控制台。我建议您只需加载一个视图,即可加载其中的其他视图。在一个控制器中加载多个视图在很多方面都是不合逻辑的。@RobinCastlin您能解释一下您的推理吗?如果我们只包含一个视图,我们会添加一个额外的抽象层,它不会增加任何优势,但会添加大量复制粘贴的代码。@Robin Castlin,你比我快:是的,但你的大写字母
TRUE
,我发现它更漂亮:)这是我的指纹之一;)我的也是:P变得更好了。请注意,我对已接受答案所做的唯一一件事就是将
echo
添加到第1行和第3行。是的,但您的速度更快,并且您的答案已被接受。我把时间浪费在格式化文件上了code@Robin卡斯特林,你比我快:是啊,但你用大写字母
TRUE
,我发现它更漂亮:)那是我的指纹之一;)我的也是:P变得更好了。请注意,我对已接受答案所做的唯一一件事就是将
echo
添加到第1行和第3行。是的,但您的速度更快,并且您的答案已被接受。我浪费了时间格式化代码