TP5 模型
来源:互联网 发布:微信小视频制作软件 编辑:程序博客网 时间:2024/05/19 01:10
tp5的controller里面连接数据库表模型:
以下tablename都是不包含表前缀的部分,prefix-tablename是包含表前缀的完整表名
1.利用助手函数db(),直接连接数据库操作:
$res=db('tablename')->find(); //返回数组
注意:使用db助手函数默认每次都会重新连接数据库,如果想采用相同的链接,需要传入第三个参数
$ress=db('tablename',[],false)->find();
这样,$resshe $res 采用的就是同一个链接啦。第二个参数为数据库的连接参数,留空表示采用数据库配置文件的配置。
2.利用助手函数 model()
$res=model('tablename')->find(); //返回对象
2.1利用系统 Model类 需要应用相应的命名空间,还是用助手函数吧
use think\Model;
3.利用Loder类,需要应用相应的命名空间:
use think\Loader;
$res = Loader::model('tablename')->find(); //返回对象
4.利用Db类,需要应用相应的命名空间,直接连接数据库操作:
use think\Db;
Db::name('tableneme')->find(); //返回数组
Db::table('prefix-tableneme')->find(); //返回数组
如果没有用到表前缀,那么 Db::name() 和Db::table() 效果是一样的,有表前缀,那么table必须要写全名。
5.通过new tablename,需要应用模型对应的命名空间:
use app\mokuai\moxing\tablename;
$db= new tablename;
$db->find(); //返回对象
注意:通过Db类连接数据库操作 或者 助手函数db(),是链接数据库,用于在conroller中进行数据库操作,不能调用model里的方法。我觉得这种是面向过程编程的一个体现,所有的逻辑都在控制器中实现,不利于扩展和代码复用。但是效果很明显,不是很复杂的项目,可以面向过程快速完成,简单明了。
面向对象的编程,应该是在model里进行业务逻辑的处理,controller进行数据处理和流程控制(比如页面跳转,或者报错)。
以面向对象的思想去编程,在controller中就应该调用model提供的接口,根据返回值做判断以及相应的处理,因此,在model里就会涉及相应的数据查询等逻辑。
不知道我理解的对不对,如果有不对的地方,希望看到的人能留言指正,谢谢。
如果对你有帮助,请点个赞,谢谢。
熟读手册,才能得心应手。
- TP5 模型
- tp5模型笔记---一对一
- tp5中的模型关联
- tp5模型笔记---一对多
- 实例讲解TP5中关联模型
- PHP day7 TP5 model模型对象
- TP5模型修改器和读取器
- tp5模型belongsTo和hasOne的区别
- tp5模型笔记---多对多
- TP5
- 《TP5.0学习笔记---模型篇(一)》
- 《TP5.0学习笔记---模型篇(二)》
- 《TP5.0学习笔记---模型篇(三)》
- PHP TP5 省市区表多级关联模型查询,和db方式查询封装效率
- PHP TP5 使用getPk()注意,在模型关联时,最好把主键名参数写上
- TP5 Model层 模型操作——指定数据库/表 && 自动写入时间
- Tp5 单元测试
- tp5学习
- 基于网络爬虫的负面信息搜集系统
- 能与app竞争未来的小程序到底是什么?
- 8,数据挖掘环境搭建-IDEA MAVEN搭建Spark开发环境
- sublime text3在终端输出中文乱码
- JDK8中ArrayList源码分析
- TP5 模型
- 条款03:尽可能的使用const
- 判断APP是原生的还是H5页面
- 欢迎使用CSDN-markdown编辑器
- PullToRefreshListView添加含有listview的头部底部布局的各种问题
- 蓝桥杯 历届试题 回文数字
- configure.ac文件编写规则
- HDU 1159.Common Subsequence
- 【论文发表】顶会网址指引