致命错误:在codeigniter中找不到类

时间:2015-04-23 09:16:09

标签: php codeigniter

我在代码点火器的Admin_Model目录下创建了一个模型Application\core。我把所有基本数据库操作都放在它下面。当我尝试扩展Application\model目录下的模型时,会抛出错误。

Fatal error: Class 'Admin_Model' not found in <path to root>/application/models/new_model.php on line 3

我应该错过任何配置吗?

3 个答案:

答案 0 :(得分:2)

感谢所有人的努力。 我找到了解决方案。

默认情况下,CodeIgniter在其配置文件中有一个设置。

L.TileLayer

我只是将'MY_'替换为'Admin_'一切正常。

$config['subclass_prefix'] = 'MY_';

更合适的解决方案是

  1. 将类文件放入库文件夹
  2. 将以下代码添加到config.php

    $config['subclass_prefix'] = 'Admin_';
    
  3. 那是全部

答案 1 :(得分:2)

如果您仍然无法使用 __ autoload 来使用库中的,这也可能会有所帮助。当我在控制器上使用类库到父类时,它对我有用。

  

PHP 5&gt; = 5.1.2,PHP 7

这是我在application / config.php的代码

spl_autoload_register(function ($classname){
    if(strpos($classname,'CI_') == 0){
            $file = APPPATH.'libraries/'.$classname.'.php';
            if(file_exists($file)){
                @include_once($file);
            }
    }
});

答案 2 :(得分:1)

扩展核心类

如果您只需要为现有库添加一些功能 - 可能添加一两个功能 - 那么用您的版本替换整个库就太过分了。在这种情况下,简单地扩展课程会更好。扩展一个类几乎与用一些例外替换类相同:

类声明必须扩展父类。 您的新班级名称和文件名必须以 MY _ 为前缀(此项目可配置。请参见下文。)。 例如,要扩展本机Model类,您将创建一个名为application / core / MY_Model .php的文件,并使用以下命令声明您的类:

class MY_Model extends CI_Model {

}

注意:如果需要在类中使用构造函数,请确保扩展父构造函数:

class MY_Model extends CI_Model {

    function __construct()
    {
        parent::__construct();
    }
}