neo76 发表于 2011-8-4 09:44:40

在控制器里同时导入两个类出现的异常问题

本帖最后由 neo76 于 2011-8-4 10:16 编辑

在控制器里 $this->load->library(array('admin/admin','admin/session')); 这样导入两个类, admin类使用正常,但使用session类时显示
----------------------------------------------------
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Main::$session
Filename: admin/main.php
Line Number: 10
----------------------------------------------------

Fatal error: Call to a member function aaa() on a non-object ;
aaa()是session类里的一个方法, 把aaa放在session类里的构造函数里可以输出信息,说明session类已被执行, 但在控制器里 $this->session->aaa(); 就会出现上面描述的问题,有谁遇到过类似的问题么?ps) 同时导入的类中 admin类使用正常



visvoy 发表于 2011-8-4 10:41:27

本帖最后由 visvoy 于 2011-8-4 10:42 编辑

请仔细阅读CI关于命名规范的手册
class CI_Admin
class CI_Session
还有library不能继承CI_Controller

neo76 发表于 2011-8-4 10:49:33

class CI_Admin
class CI_Session
这两个是自定义导入的类。

关于“还有library不能继承CI_Controller”, 我刚自己测试时把两个类的所有信息都删除后就各自留下了一个方法,测试范县没问题,所以还是怀疑我自身的问题。 谢谢你的提醒。

visvoy 发表于 2011-8-4 10:51:29

只要你用->load->library()加载的类,他必须是CI_开头,不然CI不会创建这个类的实例

neo76 发表于 2011-8-4 11:01:58

visvoy 发表于 2011-8-4 10:51 static/image/common/back.gif
只要你用->load->library()加载的类,他必须是CI_开头,不然CI不会创建这个类的实例 ...

有这事? CI_ 开头不是替换原始类时命名的么?

我的会话类是我自己单独写的,跟CI的会话是没关系的。

visvoy 发表于 2011-8-4 11:03:48

但你是在CI框架下面用CI的load->library()加载他,这时必须遵守CI的library class命名规范

neo76 发表于 2011-8-4 11:17:40

嗯,明白你的意识了。

就跟你说的library不能继承CI_Controller这个问题。
本想少写 $ci =& get_instance();和 $this->CI 让类继承 Controller 没想到还有这事,,,

谢谢~~

Hex 发表于 2011-8-4 13:00:59

visvoy 发表于 2011-8-4 11:03 static/image/common/back.gif
但你是在CI框架下面用CI的load->library()加载他,这时必须遵守CI的library class命名规范 ...

【反对】
好像不是这样吧。。。
只有扩展核心类才需要。。。。

zhouli520 发表于 2011-8-4 14:40:59

library里面的自定义类可以不用写CI_前缀 也可以正常加载的.

织梦的蚂蚁 发表于 2012-4-13 09:05:29

呵呵
还真有人用这个编辑器!
页: [1] 2
查看完整版本: 在控制器里同时导入两个类出现的异常问题