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

CI Model或Controller的继承

[复制链接]
发表于 2012-6-1 12:34:36 | 显示全部楼层 |阅读模式
Model和Controller里有一些通用的方法,想用类继承的方式处理,CI提供了扩展CI_Model的方法,定义一个MY_Model继承自CI_Model放在core目录中,子Model再继承自MY_Model,但是这样只能定义一个MY_Model,如果加一个MY_Model2,另外一些Model继承自MY_Model2会提示类不存在,那应该怎么做?
发表于 2012-6-1 14:16:32 | 显示全部楼层
CI 只支持一级继承,多级继承不支持。
发表于 2012-6-1 15:43:07 | 显示全部楼层
CI在继承方面确实做得很糟糕
发表于 2012-6-1 15:49:00 | 显示全部楼层
你可以再MY_model里写两个class
 楼主| 发表于 2012-6-1 16:01:54 | 显示全部楼层
指尖的殤魂 发表于 2012-6-1 15:49
你可以再MY_model里写两个class

这我倒没想到,不过这样好吗?况且类里面代码太多全放一起有点长,我现在是直接在 models 目录里面定义了两个类,但是子 model 在类定义前要加个 require_once,也不知这样是否符合 CI 规范
 楼主| 发表于 2012-6-1 16:04:01 | 显示全部楼层
Hex 发表于 2012-6-1 14:16
CI 只支持一级继承,多级继承不支持。

我其实都不算多级继承,只是A和B各自有一部分独立的功能,子Model也分别继承自A和B
发表于 2012-6-1 17:04:40 | 显示全部楼层
aniven 发表于 2012-6-1 16:04
我其实都不算多级继承,只是A和B各自有一部分独立的功能,子Model也分别继承自A和B ...

嗯,CI 只能有一个 MY_Model。
你如果有需要就要自己修改 CI 源码。
发表于 2012-6-2 10:49:42 CI中国手机版 | 显示全部楼层
如Hex所说,自己修改CI吧
来自: iPhone客户端
发表于 2012-12-15 14:43:49 | 显示全部楼层
发表于 2012-12-26 14:33:48 | 显示全部楼层
需要自己添加autoload,具体方法有很多

本版积分规则