aniven 发表于 2012-6-1 12:34:36

CI Model或Controller的继承

Model和Controller里有一些通用的方法,想用类继承的方式处理,CI提供了扩展CI_Model的方法,定义一个MY_Model继承自CI_Model放在core目录中,子Model再继承自MY_Model,但是这样只能定义一个MY_Model,如果加一个MY_Model2,另外一些Model继承自MY_Model2会提示类不存在,那应该怎么做?

Hex 发表于 2012-6-1 14:16:32

CI 只支持一级继承,多级继承不支持。

tiana 发表于 2012-6-1 15:43:07

CI在继承方面确实做得很糟糕

指尖的殤魂 发表于 2012-6-1 15:49:00

你可以再MY_model里写两个class

aniven 发表于 2012-6-1 16:01:54

指尖的殤魂 发表于 2012-6-1 15:49 static/image/common/back.gif
你可以再MY_model里写两个class

这我倒没想到,不过这样好吗?况且类里面代码太多全放一起有点长,我现在是直接在 models 目录里面定义了两个类,但是子 model 在类定义前要加个 require_once,也不知这样是否符合 CI 规范

aniven 发表于 2012-6-1 16:04:01

Hex 发表于 2012-6-1 14:16 static/image/common/back.gif
CI 只支持一级继承,多级继承不支持。

我其实都不算多级继承,只是A和B各自有一部分独立的功能,子Model也分别继承自A和B

Hex 发表于 2012-6-1 17:04:40

aniven 发表于 2012-6-1 16:04 static/image/common/back.gif
我其实都不算多级继承,只是A和B各自有一部分独立的功能,子Model也分别继承自A和B ...

嗯,CI 只能有一个 MY_Model。
你如果有需要就要自己修改 CI 源码。

ciogao 发表于 2012-6-2 10:49:42

如Hex所说,自己修改CI吧

harrisonjau 发表于 2012-12-15 14:43:49

http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=15110&page=1&extra=#pid70469

六月峰 发表于 2012-12-26 14:33:48

需要自己添加autoload,具体方法有很多
页: [1] 2
查看完整版本: CI Model或Controller的继承