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

[模型] 模型中的代码太重复

[复制链接]
发表于 2010-3-20 10:16:34 | 显示全部楼层 |阅读模式
我给每个表建立一个模型,但是,写的过程中发现,对每个表的操作都是CURD,把一个模型的代码复制到另一个模型里, 只需要改一下表名和字段名,甚至字段名也不用改就可以用了。
我在想,是否可以做一个进行CURD操作的函数,使用时,传入字段名、表名和条件就可以得到任何表的返回结果。

欢迎讨论~~
发表于 2010-3-20 10:36:26 | 显示全部楼层
啊?
CURD操作不是被AR类封装了吗?
使用的时候就是你说的传入字段名、表名和条件就可以得到任何表的返回结果。
 楼主| 发表于 2010-3-20 12:05:58 | 显示全部楼层
但是,对每个表都这样CURD,各个模型的代码不是很重复吗?
发表于 2010-3-20 14:22:32 | 显示全部楼层
可以扩展一下model类,看这里:http://haohailuo.blog.163.com/blog/static/753425102010213103924690/
发表于 2010-3-20 14:25:54 | 显示全部楼层
当然可以 你自己封装一个就可以了的

不麻烦的
发表于 2010-3-21 21:32:30 | 显示全部楼层
感觉没的必要,有些逻辑处理还是要在model里实现的呀,怎么写都得有个model文件,没什么意义
发表于 2010-3-25 13:20:16 | 显示全部楼层
可以扩展一下model类,看这里:http://haohailuo.blog.163.com/blog/static/753425102010213103924690/ ...
haohailuo 发表于 2010-3-20 14:22



    先拓展一下module,还不能满足的要求的话在单独建立个文件好了,其实,$this->db 就是module了,就是感觉还是太普遍,呵呵
发表于 2010-4-7 22:57:05 | 显示全部楼层
本帖最后由 samubra 于 2010-4-7 23:00 编辑
PHP复制代码
function gettable($fields=null,$limit=null,$where=null,$table){
                ($fields!=null) ? $this->db->select($fields) :'';
                ($where!=null) ? $this->db->where($where) :'';
                ($limit!=null) ? $this->db->limit($limit['start'],$limit['end']) :'';
                return $this->db->get(table);
        }
复制代码
这是在FreakAuth_light上看到的

本版积分规则