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

[讨论/交流] 请教下是在控制器中还是模型中对提交值取值呢

[复制链接]
发表于 2013-3-12 18:24:02 | 显示全部楼层 |阅读模式
本帖最后由 mark35 于 2013-3-12 18:31 编辑

有提交值,取值使用 $this->input->post('key') 方法。一般是放在控制器中取值然后传值给模型方法,还是在模型中直接取值处理呢?

评分

参与人数 1威望 +1 收起 理由
bax + 1 淡定

查看全部评分

发表于 2013-3-12 19:02:05 | 显示全部楼层
都可以,我是在控制器里取,因为需要在控制器里做数据验证。
 楼主| 发表于 2013-3-12 19:17:03 | 显示全部楼层
Hex 发表于 2013-3-12 19:02
都可以,我是在控制器里取,因为需要在控制器里做数据验证。

明白了。根据实际情况来决定怎么取值和处理。
 楼主| 发表于 2013-3-13 10:43:01 | 显示全部楼层
Hex 发表于 2013-3-12 19:02
都可以,我是在控制器里取,因为需要在控制器里做数据验证。

我现在是这么处理
1、对于SELECT方式请求,如果需要数据验证在C中验证,然后只传个PK值给M。然后在M的方法中调用$this->input->post()来取值——比如我写的jqGrid_model就是这么来处理ajax请求中分页参数值
2、对于INSERT请求,先在C中验证表单,然后根据表结构组装个参数数组然后传递给M的方法,M中就可以直接使用CI的active Recode $this->db->insert($data)来写入
3、对于UPDATE请求但字段不固定的,先在C中验证表单,然后可用2的方式或者用1的方式来更新
发表于 2013-3-13 13:50:44 | 显示全部楼层
Hex 发表于 2013-3-12 19:02
都可以,我是在控制器里取,因为需要在控制器里做数据验证。

請教一下hex大,数据验证可不可以在模型裡處理?會影響效率不?
发表于 2013-3-13 14:07:40 | 显示全部楼层
bax 发表于 2013-3-13 13:50
請教一下hex大,数据验证可不可以在模型裡處理?會影響效率不?

可以,不会影响效率。

本版积分规则