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

时间:2014-04-01 19:46:57

标签: php codeigniter codeigniter-2

我已经通过stackoverflow找到了这个答案,但没有人能够帮助我。

我的文件名是:application / core / MY_Controller.php

class MY_Controller extends CI_Controller {

/**
 * Constructor
 */
public function __construct()
{
        parent::__construct();

}

}

我在此thread发帖询问是否有人找到答案。我尝试了该主题中的所有内容以及所有建议的链接。

我完全失去了。

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

错误:

PHP Fatal error: Class 'MY_Controller' not found in filepath/application/controllers/welcome.php on line 7. 

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

修改 谢谢你的帮助。我弄清楚出了什么问题。 当我最初开始试图找出这个问题时,我注意到我的MY_Controller.php的名字没有我的情况,它是My_Controller.php。

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

1 个答案:

答案 0 :(得分:0)

请转到您的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)。