cakephp: 你应该在控制器中调用Model::query()方法吗?
来源:互联网 发布:淘宝网不能加入购物车 编辑:程序博客网 时间:2024/06/07 07:04
模型的query()函数有时是非常实用的,它可以在任何需要数据的地方执行SQL语句.
但不是在什么地方调用query()方法都是恰当的.特别是在控制器中直接调用模型的query()方法
$this->MyModel->query('Here comes the SQL statement');
在控制器中调用模型的query方法么有什么不可以,但它引入了数据库相关的代码,这违反了MVC模式的原则
一个更加干净的方案是把SQL语句移动到模型中,因此上面那段代码重构为:
// 在模型中
function doSomething() {
$this->query('Here comes the SQL statement');
}
// i在控制器中
$this->MyModel->doSomething();
function doSomething() {
$this->query('Here comes the SQL statement');
}
// i在控制器中
$this->MyModel->doSomething();
不要在控制器中加入数据库相关的代码,这些代码都应该放置在模型中,有模型去处理
这个方案需要编写更多的代码,但是它带来了一些优点:
* 易于测试
* 更可读
* 避免了查询代码在多个控制器之间导出复制,使代码更简洁
- cakephp: 你应该在控制器中调用Model::query()方法吗?
- cakephp: 你应该在控制器中调用Model::query()方法吗?
- CakePHP: 在控制器中动态切换数据库连接
- YII 如何在控制器里调用 model 方法
- YII 如何在控制器里调用 model 方法
- close()方法应该在finally语句中调用吗?
- CakePHP在Model中使用SUM/AVG等进行统计
- React--在model中调用model
- 控制器中方法互相调用
- Laravel控制器调用model的两种方法
- CAKEPHP中调用其它类的方法【续】
- cakephp笔记——控制器常用方法
- 在CakePHP的Controller中使用三种方式关联Model
- 在CakePHP的Controller中使用三种方式关联Model
- 在子视图中实现调用控制器里面的跳转方法这里介绍三种方法
- YII 控制器的调用,在其它控制器中
- [导航控制器中,各个控制器的dealloc方法调用时机]
- 学习ThinkPHP3.2.2:video8,控制器方法中定义的变量在模板中调用并显示
- cp命令
- afx_msg
- //键盘输入算数表达式(字符串的),求计算结果.
- 用GDB调试vlc(windows)
- 画一个矩形程序
- cakephp: 你应该在控制器中调用Model::query()方法吗?
- Java的instanceof关键字
- cs硕士妹子找工作经历【阿里人搜等互联网】
- 比较大小lisp程序
- Java swing绘图机制
- 关于回车换行符的显示和删除
- java格式化小数位
- iphone弹出窗口效果的制作(Core animation, CALayer)
- WLAN API应用介绍(含实例程序)