如何让MY_Controller中的__construct()运行?

时间:2013-01-04 20:11:57

标签: php codeigniter constructor extend

  

可能重复:
  Codeigniter extending extended MY_Controller

我一直在摆弄这个问题一段时间了,而且我正处于挫折之中。我正在使用MY_Controller扩展控制器类。

以下是详细信息:

  • __construct()似乎没有被调用。
  • 该文件位于应用程序/核心中,因为它应该是
  • 该文件名为MY_Controller.php
  • 我已将MY_设置为扩展名的前缀(我还有其他扩展程序正常工作)

这是我的代码:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Controller extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        echo 'TESTING!!!'; // This should print, followed by an ob_start() error
    }

}

我应该返回一个页面,上面写着TESTING!!!后跟一个ob_start()错误,而是页面呈现正常。

我已经尝试拆分构造函数类并只调用MY_Controller中的私有函数,但这不起作用。我知道正在调用该文件,因为如果我故意在MY_Controller.php中创建一个php错误,该页面将会出错。在我看来__construct()没有运行。

1 个答案:

答案 0 :(得分:5)

您能在应用程序/控制器下显示一个控制器的示例吗?请注意应用程序/控制器下的控制器应该扩展MY_Controller而不是CI_Controller - 我认为这是你错过的。

例如,在您的控制器应用程序/ controller / test.php下。它应该是这样的:

class Test extends MY_Controller {        
    public function index()
    {
         echo 'test';
    }
}