博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cakephp 的query方法,直接写在controller中是否 有点不合适
阅读量:5745 次
发布时间:2019-06-18

本文共 464 字,大约阅读时间需要 1 分钟。

模型的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();

不要在控制器中加入数据库相关的代码,这些代码都应该放置在模型中,有模型去处理

这个方案需要编写更多的代码,但是它带来了一些优点:

    * 易于测试

    * 更可读
    * 避免了查询代码在多个控制器之间导出复制,使代码更简洁

转载地址:http://cbazx.baihongyu.com/

你可能感兴趣的文章
陈松松:新注册视频平台帐号,养号30天执行方法
查看>>
触控手势怎么设计才好用(二)
查看>>
零基础编程者应先学哪门语言
查看>>
network configuration in linux
查看>>
PowerShell 2.0 实践(五)管理Windows注册表
查看>>
怎样设计才能让文字排版更好看(一)
查看>>
java多线程-简单的卖票程序
查看>>
Linux/Unix mpstat command
查看>>
bootstrap-datetimepicker 获取时间
查看>>
flink读取kafka数据并写入HDFS
查看>>
监控主机网卡流量
查看>>
ceph的pg分布
查看>>
how to set yum proxy server
查看>>
Linux Bash脚本练习2
查看>>
李彦宏:百度需要从这七点开始改变!
查看>>
关于QTableWidgetItem::setItemPrototype的理解
查看>>
IOS 手势之左右滑动
查看>>
Redis实现分布式锁的几种方案
查看>>
一文详解Linux系统常用监控工具
查看>>
我的友情链接
查看>>