tp5数据库操作 模型层
一、数据模型作用
相同功能代码不用重复写多次
二、创建方式
在模块下建立model文件夹,php文件,文件名为数据库表名,其中类为数据库表名,继承Model类,模型层即为此表
namespace app\demo\model; use think\Model;
class Ceshi extends Model{ }
三、控制器调用,查询
namespace app\demo\controller;
//调用类继承
use think\Controller;
//调用模型
use app\demo\model\Ceshi;
class Test extends Controller{
public function test(){
//实例化模型
$p = new Ceshi;
//get id为1的数据,转为数组
dump($p->get(1)->toArray());
//类调用一条
$data = Ceshi::get(['pin'=>'zhangsan']);
dump($data->toArray());
//类调用多条
$data = Ceshi::all(['pin'=>'zhangsan']);
foreach($data as $k => $v){
dump($v->toArray());
}
}
}
//find方法
//$data = $p->where('pin','zhangsan')->find();
四、增加数据
namespace app\demo\controller;
//调用类继承
use think\Controller;
//调用模型
use app\demo\model\Ceshi;
class Test extends Controller{
public function test(){
//实例化模型
$p = new Ceshi;
//增加一条数据
//方法一:赋值,保存
$p->pin = 'yonghu1';
$p->name = '用户1';
$p->save();
//方法二:批量赋值
$p->data([
'pin'=>'yonghu2',
'name'=>'用户2'
]);
$p->save();
//只允许某些字段写入
$p->data([
'pin'=>'yonghu3',
'name'=>'用户3',
'pwd'=>'123'
]);
$p->allowField(['pin','name'])->save();
//过滤不是该表中有的字段,
allowField(true)
//增加多条数据
$list = [
['pin'=>'yonghu3','name'=>'用户3'],
['pin'=>'yonghu3','name'=>'用户3']
];
$p->saveAll($list);
}
}
助手函数
model
区别仅在于实例化那里更改为如下
$p = model('Ceshi')
五、更新
//更新一条
//实例化模型
$p = new Ceshi;
$p->save([
'pin'=>'yonghu4',
'name'=>'用户4'
],['id'=>10]);
//更新多条
$list 添加多条那里,每一行写个id
六、删除
静态方法:Ceshi::destroy([1,2,3])(括号内为主键的值)
条件删除:Ceshi::destroy(['name'=>'1'])
七、模型层查找字段改变显示值
tp5数据库操作 模型层的更多相关文章
- EF三种数据库操作模型比较
https://blog.csdn.net/xiongmeiqin/article/details/80196089 EF 中 Code First 的数据迁移以及创建视图 写在前面: EF 中 Co ...
- tp5数据库操作 Db类
一.链接数据库 1.配置文件定义 application\database.php 注意:数据表前缀更改,在文件的prefix选项 2.类定义 二.数据库的基本使用 namespace app\de ...
- 模型层TP框架数据库的操作
在shop入口的文件下的HOME文件夹中使用模型层 第一步修改配置模块把数据库的各种链接做好,打开HOME中的conf文件夹中的config.php,找到Thinkphp文件加下的conf文件打开co ...
- 模型层之ORM、数据库和单表操作
一.ORM简介 ORM是“对象-关系-映射”的简称,一般指持久化数据和实体对象的映射 1.1 什么是“持久化” 持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中( ...
- Django模型-数据库操作
前言 前边记录的URLconf和Django模板全都是介绍页面展示的东西,也就是表现层的内容.由于Python先天具备简单而强大的数据库查询执行方法,Django 非常适合开发数据库驱动网站. 这篇开 ...
- Django之django模型层一单表操作
一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...
- {django模型层(二)多表操作}一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询、分组查询、F查询和Q查询
Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 xxx 七 ...
- Django基础五之django模型层(一)单表操作
一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...
- ThinkPHP5.0框架开发--第7章 TP5.0数据库操作
ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...
随机推荐
- vue.js的ajax和jsonp请求
首先要声明使用ajax 在 router下边的 Index.js中 import VueResource from 'vue-resource'; Vue.use(VueResource); ajax ...
- Hadoop-2.2.0集群部署时live nodes数目不对的问题
关于防火墙,hadoop本身配置都确定没任何问题,集群启动不报错,但打开50070页面,始终live nodes数目不对,于是我尝试/etc/hosts文件配置是否存在逻辑的错误: 127.0.0.1 ...
- Webpack 快速上手(下)
杏仁前端开发工程师,代码洁癖症早期,关注前端技术. 由于文章篇幅较长,为了更好的阅读体验,本文分为上.中.下三篇: 上篇介绍了什么是 webpack,为什么需要 webpack,webpack 的文件 ...
- 设置快捷键用sublime直接打开浏览器
1.安装sidebarenhancements插件 ctrl+shift+p —> Install Package —> 找到SideBarEnhancements 2.配置预览快捷键 / ...
- Codeforces Round #548 (Div. 2) A. Even Substrings
You are given a string
- Mybatis配置之别名配置元素详述
这里我们贴出之前的UserDao对应的mapper文件,如下所示 从这个配置文件中,我们可以看到<select>.<insert>和<update>三个标签元素的r ...
- 记一次惊心的网站 TCP 队列问题排查经历
https://blog.csdn.net/chenlycly/article/details/80868990 http://www.mytju.com/classcode/news_readnew ...
- 07.网络编程-3.TCP
1.tcp相关介绍 TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC ...
- 微信小程序获取登录手机号
小程序获取登录用户手机号. 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 <button> 组件的点击来触发. 首先,放置一个 button 按钮,将 ...
- Spring Cloud-Bus(十二)
说明 用于分布式上所有微服务都连接到消息总线上面.进行统一的通知 Config动态刷新 configClient configClient通过/actuator/bus-refresh端点通知消息总线 ...