【问题标题】:How can I get CodeIgniter 2.1.4 to load my extended Controller Class?如何让 CodeIgniter 2.1.4 加载我的扩展控制器类?
【发布时间】:2014-04-01 19:46:56
【问题描述】:

我通过 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 致命错误:在第 7 行的 filepath/application/controllers/welcome.php 中找不到类 'MY_Controller'。

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

编辑 感谢所有的帮助。我发现出了什么问题。 当我最初开始尝试解决这个问题时,我注意到我的案例并没有放在 MY_Controller.php 的名称上,它是 My_Controller.php。

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

【问题讨论】:

  • 您使用什么 URL 来尝试访问控制器?请记住,Linux 区分大小写,而 Windows 则不。
  • myurl/欢迎欢迎控制器扩展 MY_Controller
  • 您看到了什么错误?
  • PHP 致命错误:在第 7 行的 filepath/application/controllers/welcome.php 中找不到类 'MY_Controller'。第 7 行是我定义类的地方:class welcome extends MY_Controller {

标签: php codeigniter codeigniter-2


【解决方案1】:

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

【讨论】:

  • 我已经这样做了,但没有成功。我也试过这个函数 spl_autoload_register(function ($class){ [your inner function coder here ]});
  • 为什么需要这个? CodeIgniter 应该自动加载前缀为 MY_ 的核心类。
  • 我想知道自己,这对我有用,我从菲尔斯教程philsturgeon.co.uk/blog/2010/02/…
  • 我确实把它放在了我应该在的核心文件夹中。我也检查了我的情况,一切都匹配。
  • 据我所见,我的 MY_Controller.php 没有被加载,我不知道我还能做些什么来让它加载。我还发现我在通过 $this->load->helper("some_helper"); 加载帮助文件时也遇到了问题;
猜你喜欢
  • 2012-01-10
  • 2015-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多