模型学习
在MVC里面,M是负责对数据的处理,其实在TP5里面模型封装的已经很好了,基本上我们不用做过多的操作,使用系统自带的基类即可完成大部分的curd操作。
模型定义
需要写在模块的model目录下,我们可以使用TP5自带的命令行工具进行生成。
注意1:在TP5里面模型也不在使用类后缀,直接就是使用去除表前缀后的名称作为模型的名称。(模型名称使用大驼峰的方式)
例如:表的名称为 sh_admin 对应的模型文件名称 Admin.php
例如:表的名称为 sh_goods_attribute 对应的模型文件名称 GoodsAttribute.php
>php think make:model app\index\model\User
创建后
定义sh_user表
上面的模型和下面的sh_user是对应的
基本操作-增加
完成数据的增加主要有如下几种方法
- 模型对象的save方法(先为对象设置属性)
- 模型类的create静态方法
- 模型对象的saveAll批量添加方法
实操:
1.模型对象的save方法(先为对象设置属性)
2.模型类的create静态方法【简化操作】
3.模型对象的saveAll批量添加方法【上面的两种操作,都只能完成单条数据的插入,如果批量插入数据,需要使用模型对象的saveAll方法】
基本操作-查看
查询数据主要有如下几种方法
- 模型类的get静态方法【存在返回值为对象,否则为null】
- 通过字段查询getByFieldname()方法
- 根据条件查询get(['username' => 'root'])
- where方法查询->find()
- where方法查询->select()
- 模型类的all静态方法和select静态方法
实操:
1.模型类的get静态方法【存在返回值为对象,否则为null】,通过传递主键获取数据
效果
2.根据条件查询get(['username' => 'root'])
方式一:
方式二:使用where方法传递(需要注意后面要通过find()方法调用一下)
3.通过模型对象的字段查询getByFieldname('查询条件')方法
- 模型类的where方法查询,然后调用find()方法
5.where方法查询->select()
方式一:
方式二:
6.模型类的all静态方法和select静态方法
注意:对应all和select方法返回的数据,是一个数组,数组中的每个元素是一个模型对象,如果我们需要把他们转换为普通的二维数组(数组中的元素也是数组)
效果:
便捷方式获取模型实例
在新版的Tp5里面可以有如下两种便捷方式获取模型实例:
方式一:使用model助手函数
方式二:使用TP5自带的Loader类的model静态方法
总结:在新版的TP5里面,在原先TP3.2里面的单字母函数D已经不存在,取而代之的是model函数。
基本操作-更新
更新数据主要有如下几种方法
1.先 get(),后save()
2.模型类update静态方法
实操:
1.先调用模型类的get()静态方法,然后在调用模型对象的save()方法
2.模型类update静态方法
方式一:
方式二:
基本操作-删除
删除数据主要有如下几种方法
1.先使用模型类的get()静态方法,然后在使用模型对象的delete()方法
2.模型类destroy静态方法
实操:
1. 先使用模型类的get()静态方法,然后在使用模型对象的delete()方法
2.模型类destroy静态方法
3.使用destroy同时删除多条数据
4.模型对象的delete方法进行删除(需要传递删除条件)