用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5024|回复: 12
收起左侧

[已解决] ci报错找不到类的问题

[复制链接]
发表于 2010-12-29 13:26:25 | 显示全部楼层 |阅读模式
如题,我反复查验很多遍类名确认无误,却总是报这个错误。请各位高手解答,在线等。。。。
发表于 2010-12-29 13:35:25 | 显示全部楼层
请贴代码,贴错误信息。。。。
 楼主| 发表于 2010-12-29 13:50:37 | 显示全部楼层
class MContact extends Model {
       
        function MContact() {
                parent::Model();       
        }
       
        function addContact() {
                $now = date("Y-m-d H:i:s");       
                $data = array(
                        "name" => $this->input->xss_clean($this->input->post('name')),
                        "email" => $this->input->xss_clean($this->input->post('email')),
                        "ipaddress" => $this->input->ip_address(),
                        "rgdate" => $now
                );
                $this->db->insert('contacts',$data);
        }
}
发表于 2010-12-29 14:12:30 | 显示全部楼层
模型类名的首字母必须大写,其他字母小写。
文件名应该是模型类名的小写版。

请严格按照以上规定命名。
 楼主| 发表于 2010-12-29 14:13:46 | 显示全部楼层
补充:一开始发现了Loader里是先将类名全部转成小写导入了类文件,然后将$model首字母大写在构造对象的,所以我修改了Loader类里的一处代码:
require_once(APPPATH.'models/'.$path.$model.EXT);
$model = ucfirst($model);
$CI->$name = new MContact();
$CI->$name->_assign_libraries();


红色部分原来应该是$CI->$name = new $model();

修改后仍然报上述错误。
 楼主| 发表于 2010-12-29 14:16:07 | 显示全部楼层
一开始也按照hex的方法修改了类名,可还是报上述错误。
 楼主| 发表于 2010-12-29 14:19:49 | 显示全部楼层
修改后的错误:
class Mcontact extends Model { function Mcontact() { parent::Model(); } function addContact() { $now = date("Y-m-d H:i:s"); $data = array( "name" => $this->input->xss_clean($this->input->post('name')), "email" => $this->input->xss_clean($this->input->post('email')), "ipaddress" => $this->input->ip_address(), "rgdate" => $now ); $this->db->insert('contacts',$data); } }
Fatal error: Class 'Mcontact' not found in D:\workspace\CodeIgniter\system\libraries\Loader.php on line 180

修改后的代码:
class Mcontact extends Model {
       
        function Mcontact() {
                parent::Model();       
        }
       
        function addContact() {
                $now = date("Y-m-d H:i:s");       
                $data = array(
                        "name" => $this->input->xss_clean($this->input->post('name')),
                        "email" => $this->input->xss_clean($this->input->post('email')),
                        "ipaddress" => $this->input->ip_address(),
                        "rgdate" => $now
                );
                $this->db->insert('contacts',$data);
        }
}
发表于 2010-12-29 15:04:33 | 显示全部楼层
你的模型放到哪个目录下了?
目录结构贴一下。

PS: 你如果根据手册规则写,肯定是不会出错的。这么多 CI 应用都证明过了,呵呵
 楼主| 发表于 2010-12-29 16:14:44 | 显示全部楼层
谢谢hex  
这是我的目录
目录.jpg
发表于 2010-12-29 18:49:01 | 显示全部楼层
目录没问题,你在控制器里怎么调用的 model ?
建议把所有代码打包发上来,大家好帮你解决问题。

本版积分规则