Codeigniter无法找到My_Model

时间:2013-06-15 22:20:27

标签: php codeigniter

非常令人沮丧 - 当我在本地开发时,一切都很完美。然后我第一次开始在我的主机(GoDaddy)上进行测试,我得到了错误 致命错误:第3行/home/content/49/12220009/html/application/models/user_model.php中找不到“MY_Model”类

代码非常基本 -

User_model.php

class User_model extends MY_Model {

protected  $_table;

public function __construct() {
    parent::__construct();
    $this->_table = "user";
}

MY_Model.php(application / core / My_Model.php)

class MY_Model extends CI_Model
{
 public function __construct() {
    echo "in my model ctor";
    parent::__construct();
}

这一切都始于控制器按预期加载User_model -

$this->load->model('user_model');

为什么会在本地工作但不在我的主机上工作,或者换句话说如何解决呢?

3 个答案:

答案 0 :(得分:0)

这绝对是一个区分大小写的问题;你应该做的是遵循这两个步骤

1.遵循这些惯例,你很高兴

 class Model_name extends CI_Model 

Model_name 是您的类的名称...类名必须首字母大写,其余名称小写

然后文件名应为小写,如下所示

 application/models/model_name.php

答案 1 :(得分:0)

这也发生在我身上:
在Linux系统上,它显示您在窗口上指定的错误它很好。
这是因为Linux 区分大小写 。 我做了什么?;

  

我将文件从/core/MY_model重命名为/core/MY_Model

然后它解决了我的问题。

答案 2 :(得分:0)

CodeIgniter 3解决方案

类名和类文件名必须具有大写首字母

  

从CodeIgniter 3.0开始,所有类文件名(库,   驱动程序,控制器和模型)必须使用类似Ucfirst的名称   方式或换句话说-它们必须以大写字母开头。

例如,如果您具有以下库文件:

application/libraries/mylibrary.php

…然后您必须将其重命名为:

application/libraries/Mylibrary.php