Php 在CodeIgniter类更改视图加载顺序之前使用的include函数
好的,我的代码如下所示:Php 在CodeIgniter类更改视图加载顺序之前使用的include函数,php,codeigniter,Php,Codeigniter,好的,我的代码如下所示: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); require_once("/application/controllers/base/genericPageC.php"); class TutorialsC extends GenericPageC { function __construct() { parent::__constr
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once("/application/controllers/base/genericPageC.php");
class TutorialsC extends GenericPageC {
function __construct() {
parent::__construct();
}
protected function loadPage($args) {
// ...
}
}
/* End of file tutorialsC.php */
/* Location: ./application/controllers/pages/tutorialsC.php */
require_once语句存在,以便我可以继承。
现在,当我没有require_once语句,我所有的代码都在一个庞大的、格式不好的控制器中时,一切都很好。但是,只要我添加了require_一次,我的header.php视图(其中添加了所有脚本和CSS)就会加载到标记中,而不是加载到标记中。这会对我的网站风格造成轻微但令人讨厌的影响。据我自己所知,我认为加载视图的顺序正在改变。有没有办法解决这个问题
更新:
仍然不知道问题的原因,但以下是我所做的:
我转到./system/core/CodeIgniter.php,并更改了以下行:
includeAPPPATH.controllers/。$RTR->fetch_目录。$RTR->fetch_类。“.php”
致:
ob_启动;
includeAPPPATH.controllers/。$RTR->fetch_目录。$RTR->fetch_类。“.php”;
清洁卫生
现在它应该加载了。如果您需要创建跨多个控制器使用的方法,我认为您需要做的是创建一个控制器,而不是尝试要求或包含其他控制器。您需要的可能是输出某些内容或包含空格,这会将其放入HTML文档中。建议您在编写HTML文档之前先满足您的要求。您不应该在视图中进行任何处理。require抛出空白的问题存在。。。两次,出于某种原因。但是我不明白为什么脚本标记写在body标记中,空白是如何导致这种情况的。。。至于在编写html文档之前需要做什么,我不知道codeigniter是如何工作的,但是我的控制器的loadPage方法应该在包含继承类之后开始编写文档,不是吗?逻辑上?…我很难理解你的评论。如果您正在加载包含requires的视图,它会将其流式传输到客户端,仅当语句被流击中时才处理requires,因此会导致空格问题。我在任何视图中都没有requires/includes。我见过很多CI继承的示例,有些人甚至声称最优雅的方法是使用include。。。我不知道问题是什么,但至少我解决了。