Thinkphp6学习(5)模型知识总结(一)
Thinkphp6学习(5)模型知识总结(一)
一、创建模型:
一个模型对应一个数据表,规则:驼峰式的
如:下表
1、单项目模型创建
第一步:创建一个跟控制器平级的目录,目录名:model
第二步:在 model 创建 Tp6Student.php 文件
2、多项目模型创建
第一步:在 index 项目中创建目录,目录名:model
第二步:在 model 创建 Admins.php 文件
二、模型的设置
Model示例
<?php
namespace app\model;
use think\Model;
class Tp6Student extends Model
{
//设置模型名
protect $name ='Tp6Student';
//设置主键
protect $pk='id';
//设置数据表名
protect $table ='tp6_student';
}
三、模型的应用
1.实例化
用$stu=new Tp6Student() ;或$stu=new \app\model\Tp6Student();
也可以给它起一个别名:
在控制器app\controller中新建一个DataStudent.php
2.模型的CRUD方法
(1).save(),传递数据数组的方式来新增数据
(2)使用allowField()方法,允许要写入的字段,其它字段无示写入。
$stu->allowField([‘id’,‘name’])->save();
(3)replace()方法可以用于实现REPLACE into 新增
(4)saveAll()方法,可以批量新增数据,返回批量新增的数组
(5)可以调用创建的方法来新增数据,模型::create()
$stu =StudentModel::creat(参数1,参数2,参数3)
//参数1是新增数据数组,必选
//参数2是允许写入的字段,可选
//参数3为是否 replace写入,默认 false为 insert
(6)delete()方法,删除
(7)静态方法destroy()方法,也可以指删除,
如:$res = $stu=StudentModel::destroy([40,50,53,]);
(9)更新数据:
◆save()方法只会更新变化的数据,如果提交的修改数据没有变化,则不更新,
◆但如果你想强制更新数即使数据一样,那么可以使用 force()方法
Suser->force()->save()
◆Db::raw()执行SQL函数的方式,同样在这里有效:
user->priceDb: raw('price+1 ')
◆使用a11 owfield()方法,允许要更新的字段,其它字段就无法写入了
Suser->allowfleld(['username, 'email1)->save(,
◆通过 saveas1()方法,可以批量修改数据,返回被修改的数据集合
◆静态方法:模型::update()方法更新
(10)数据的查询
◆1.使用find()方法,通过主键(id)查询到想要的数据
$data= StudentModel:: find(40)
Dump($data)
◆也可以使用 where()方法进行条件筛选查询数据
$data= StudentModel:: where('username", 7")->find();
◆3.调用find()方法时,如果数据不存在则返回Nu11
◆4.同上,还有 findOrEmpty()方法,数据不存在返回空模型
◆5.此时,可以后使用 isempty()方法来判断,是否为空模
型Suser Usermodel: findorempty(1111)if (suser->isempty())techo'空模型,无数据!
◆6,使用 select([])方式,査询多条指定1d的字段,不指定就是所有字段
select([19, 20, 211)
◆7.也模型方法也可使用where等连缀查询,和数据库查询的方式一样
如:$stu=StudentModel::where(
◆8.获取某个字段 value()或者某个列 column()的值
:Usermodel:where('id,79)->value('username)
Usermodel: wherein('id",[79, 118, 128])->column('username",id)
◆9.模型支持动态查询: getby*,*表示字段名
Usermodel: getbyusername('辉夜');
Usermodel: getbyemail(huiye 163. com);
◆10,模型支持聚合查询:max,min,sum,count,avg等
相关文章
- 无监督学习的12个最重要的算法介绍及其用例总结(附链接)
- Laravel学习记录--微信开发(day1)
- Pytorch模型训练实用教程学习笔记:一、数据加载和transforms方法总结
- 常见深度学习模型总结「建议收藏」
- 机器学习模型的集成方法总结:Bagging, Boosting, Stacking, Voting, Blending
- 5个时间序列预测的深度学习模型对比总结:从模拟统计模型到可以预训练的无监督模型
- 如何全面掌握图机器学习?西南财大最新《图学习》全面梳理总结448篇论文
- 【Docker 系列】docker 学习十一,docker 总结和面试题整理
- 分享一个免梯子的GPT,刷题和学习的好帮手
- 7000 字精华总结,Pandas/Sklearn 进行机器学习之特征筛选,有效提升模型性能
- Redis list 类型学习笔记与总结
- Android开发学习总结(五)——Android应用目录结构分析详解手机开发
- Redis 学习之持久化机制、发布订阅、虚拟内存详解程序员
- 机器学习信仰之朴素贝叶斯法详解大数据
- javaweb学习总结(四十四)——监听器(Listener)学习详解编程语言
- java基础学习总结——方法的重载(overload)详解编程语言
- JavaScript学习总结(十二)——JavaScript编写类详解编程语言
- 学习MySQL数据库:一段总结历程(mysql 数据库 总结)
- Oracle培训合同——打造经典的学习伙伴(oracle培训合同)
- 学习Redis掌握有效的知识学习策略(怎样学会redis)
- MySQL 55 参考手册学习更多MySQL知识(5.5mysql参考手册)
- Javascriptthis的一些学习总结
- Ruby中的方法(函数)学习总结