Codeigniter Can't Find My_Model


Codeigniter Can't Find My_Model

非常令人沮丧-当我在本地开发时,一切都很完美。然后我开始在我的主机(GoDaddy)上第一次测试,我得到了错误致命错误:在/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(应用程序/核心/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');

有什么想法,为什么这将在本地工作,而不是在我的主机,或者如何解决它,换句话说?

这绝对是大小写敏感的问题;你应该做的是遵循以下两个步骤

1。遵循这些惯例,你就可以顺利完成了

 class Model_name extends CI_Model 

Model_name是你的类名…类名的首字母必须大写,其余部分必须小写

然后文件名用小写,像这样

 application/models/model_name.php

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

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

,然后它解决了我的问题。

CodeIgniter 3解决方案

类名和类文件名必须有一个大写首字符

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

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

application/libraries/mylibrary.php

…那么你必须将它重命名为:

application/libraries/Mylibrary.php