baiyuxiong 发表于 2010-3-20 10:16:34

模型中的代码太重复

我给每个表建立一个模型,但是,写的过程中发现,对每个表的操作都是CURD,把一个模型的代码复制到另一个模型里, 只需要改一下表名和字段名,甚至字段名也不用改就可以用了。
我在想,是否可以做一个进行CURD操作的函数,使用时,传入字段名、表名和条件就可以得到任何表的返回结果。

欢迎讨论~~

jeongee 发表于 2010-3-20 10:36:26

啊?
CURD操作不是被AR类封装了吗?
使用的时候就是你说的传入字段名、表名和条件就可以得到任何表的返回结果。

baiyuxiong 发表于 2010-3-20 12:05:58

但是,对每个表都这样CURD,各个模型的代码不是很重复吗?

haohailuo 发表于 2010-3-20 14:22:32

可以扩展一下model类,看这里:http://haohailuo.blog.163.com/blog/static/753425102010213103924690/

xiaoniao 发表于 2010-3-20 14:25:54

当然可以 你自己封装一个就可以了的

不麻烦的

jeongee 发表于 2010-3-21 21:32:30

感觉没的必要,有些逻辑处理还是要在model里实现的呀,怎么写都得有个model文件,没什么意义

failurewu 发表于 2010-3-25 13:20:16

可以扩展一下model类,看这里:http://haohailuo.blog.163.com/blog/static/753425102010213103924690/ ...
haohailuo 发表于 2010-3-20 14:22 http://codeigniter.org.cn/forums/images/common/back.gif


    先拓展一下module,还不能满足的要求的话在单独建立个文件好了,其实,$this->db 就是module了,就是感觉还是太普遍,呵呵

samubra 发表于 2010-4-7 22:57:05

本帖最后由 samubra 于 2010-4-7 23:00 编辑

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上看到的
页: [1]
查看完整版本: 模型中的代码太重复