用户
 找回密码
 入住 CI 中国社区
搜索
12
返回列表 发新帖
楼主: 张三的歌
收起左侧

[版本 3.x] ci框架 model 层封装问题, 急急急!

[复制链接]
发表于 2016-8-23 16:37:03 | 显示全部楼层
参考手册 查询构造器类
 楼主| 发表于 2016-8-25 16:07:15 | 显示全部楼层
 喜剧之王  发表于 2016-8-23 16:26
public function getSomeFieldsByWhere($where, $fields, $num, $offset){
        $this->db->select($fie ...

这样是可以了,那要是再加上like , order, group 这三的话,参数会增加大概6个,目前是4个,加起来是10个......有点恐怖
发表于 2016-8-25 16:17:31 | 显示全部楼层
张三的歌 发表于 2016-8-25 16:07
这样是可以了,那要是再加上like , order, group 这三的话,参数会增加大概6个,目前是4个,加起来是10个.... ...

一個一個參數丟,比較偏功能取向
就是我這個方法,要達到一個目的,例如 : 登入檢查

你也可以彈性取向,方法直接承接一個大的 $data
然後 Model 裡面再檢查這個 $data 有沒有某個 key 值,是不是陣列等等

當然還有另外一種是資料表取向
一個 Model 管一個資料表
使用公域 $this->table 來取值
調用給該 Model 各個方法使用

程式語言有很多種設計模式
可以去多看看,你會發現不一樣的世界

 
 楼主| 发表于 2016-8-25 17:29:30 | 显示全部楼层
Closer 发表于 2016-8-25 16:17
一個一個參數丟,比較偏功能取向
就是我這個方法,要達到一個目的,例如 : 登入檢查

请教一下,在哪里可以看到更多人写的model呀
发表于 2016-8-25 17:32:16 | 显示全部楼层
张三的歌 发表于 2016-8-25 17:29
请教一下,在哪里可以看到更多人写的model呀

github 吧
不過我大多是看同事的代碼學到的
所以也不知道 github 哪邊可以參考 XD


 
发表于 2016-9-9 09:12:19 | 显示全部楼层
本帖最后由  喜剧之王  于 2016-9-9 09:13 编辑

我在想一个问题 如果你要写那么多参数,还封装成方法干什么? 链式查询不就是封装好的方法么,

public function page($data = array()){
if (!empty($array['where'])) {
            $this->db->where($array['where']);
        }
if (!empty($array['like'])) {
            $this->db->like($array['like']);
        }
}

这样子就可以哈,你只需要在DATA里穿你需要的参数就行,然后MODEL做个判断,
这样子 你只需要 page(array('where'=>array(1=>1))) 随你传几个参数 都能用, 有些需要自己改良一下~
发表于 2016-9-19 18:00:46 | 显示全部楼层
正常功能, 实现即可, 防注入以及XSS之类的, 只需要下个防注入模块, 整合进来即可

本版积分规则