0

好的,所以我的代码如下所示:

<?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_once,我添加了header.php所有脚本和 CSS 的视图就会加载到<body>标签内,而不是<head>标签内。这会对我的网站样式产生轻微但令人讨厌的影响。根据我自己的了解,我认为加载视图的顺序正在改变。任何想法如何解决它?

更新:

仍然不知道是什么导致了问题,但这是我所做的:我去了 ./system/core/CodeIgniter.php 并更改了以下行:

include(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().'.php');

至:

ob_start();
include(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().'.php');
ob_end_clean();

现在它按应有的方式加载。

4

1 回答 1

0

如果您需要创建跨多个控制器使用的方法,我认为您要做的是创建一个,而不是尝试要求或包含您的其他控制器。

于 2012-07-05T21:03:13.713 回答