如何让 CodeIgniter 2.1.4 加载我的扩展控制器类


How can I get CodeIgniter 2.1.4 to load my extended Controller Class?

我一直在通过stackoverflow寻找这个答案,没有人能够帮助我。

我的文件名是:应用程序/核心/MY_Controller.php

class MY_Controller extends CI_Controller {
/**
 * Constructor
 */
public function __construct()
{
        parent::__construct();
}
}

我在这个帖子中发了一篇文章,询问是否有人找到了答案。 我尝试了该线程中的所有内容,以及所有建议的链接。

我完全不知所措。

一切都在我的本地WAMP服务器(apache 2.4 php 5.4)上运行,而不是在生产服务器上(Ubuntu 12.04,apache 2.4,php 5.5)

错误:

PHP 致命错误:在第 7 行的文件路径/应用程序/控制器/欢迎.php中找不到类"MY_Controller"。

第 7 行是我定义类的地方:class welcome extends MY_Controller {

编辑感谢您的所有帮助。 我想出了什么问题。当我最初开始尝试解决这个问题时,我注意到我没有在MY_Controller.php的名字上正确,它是My_Controller.php。

所以,我

发现即使我在本地计算机上更改了文件的名称,当我上传它时,名称仍然没有改变。 因此,当我将其更改为全小写时,我决定直接在生产服务器上执行此操作,并发现经过这么长时间,当我认为我已经更改了它时,它仍然以小写 y 命名。 我希望这可以帮助从 WAMP 环境迁移到 LAMP 环境的其他任何人知道,即使大小写已更改,它仍然是相同的名称,并且在您上传时可能会也可能不会更改。

请转到您的application/config/config.php并在底部插入此代码

function __autoload($class)
{
 if(strpos($class, 'CI_') !== 0)
 {
  @include_once( APPPATH . 'core/'. $class . EXT );
 }
}

现在你可以走了。


请尝试使用此正文在/core 文件夹中创建文件MY_Controller.php

class MY_Controller extends CI_Controller {
    public function __construct() {
        parent::__construct();
        $this->output->enable_profiler(TRUE);
    }
}

如果有效,请使用欢迎控制器。


我错过了笔记:一切都在我的本地 WAMP 服务器(apache 2.4 php 5.4)上运行,而不是在生产服务器(Ubuntu 12.04、apache 2.4、php 5.5)上运行

请检查您的文件/控制器案例

请尝试将所有内容编辑/重命名为小写(甚至my_controller extends CI_Controller)。