cakephp: 你应该在控制器中调用Model::query()方法吗?
来源:互联网 发布:工业数据时代来临 编辑:程序博客网 时间:2024/06/07 17:20
模型的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,控制器方法中定义的变量在模板中调用并显示
- UNIX基本操作
- 使用HOOK随心监视Windows
- final, finally, finalize的区别
- 6月8日14:00,温昱谈“软件架构设计智慧之旅”
- 如何修改weblogic console登陆的用户名和密码
- cakephp: 你应该在控制器中调用Model::query()方法吗?
- 对话框背景透明
- 延迟初始化bean
- 磁盘阵列SCSI卡发出长鸣很刺耳的报警声,的解决方法
- 屏蔽ComboBox系统右键菜单
- new stock
- VC中怎么使用全局变量?
- 递归清空窗体上 所有文本框,下拉框中的文本
- Testing process--some document in testing 2.