a303896 发表于 2010-12-29 13:26:25

ci报错找不到类的问题

如题,我反复查验很多遍类名确认无误,却总是报这个错误。请各位高手解答,在线等。。。。

Hex 发表于 2010-12-29 13:35:25

请贴代码,贴错误信息。。。。

a303896 发表于 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);
        }
}

Hex 发表于 2010-12-29 14:12:30

模型类名的首字母必须大写,其他字母小写。
文件名应该是模型类名的小写版。
请严格按照以上规定命名。

a303896 发表于 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();

修改后仍然报上述错误。

a303896 发表于 2010-12-29 14:16:07

一开始也按照hex的方法修改了类名,可还是报上述错误。

a303896 发表于 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);
        }
}

Hex 发表于 2010-12-29 15:04:33

你的模型放到哪个目录下了?
目录结构贴一下。

PS: 你如果根据手册规则写,肯定是不会出错的。这么多 CI 应用都证明过了,呵呵

a303896 发表于 2010-12-29 16:14:44

谢谢hex
这是我的目录

Hex 发表于 2010-12-29 18:49:01

目录没问题,你在控制器里怎么调用的 model ?
建议把所有代码打包发上来,大家好帮你解决问题。
页: [1] 2
查看完整版本: ci报错找不到类的问题