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数据库操作 ===================================================== ...
随机推荐
- php 加密解密函数封装
算法一: //加密函数 function lock_url($txt,$key='yang') { $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi ...
- matlab学习GUI可调的界面窗口
创建一个GUI界面,在此依然利用GUI_01的窗口来演示 发现它的最大化窗口不可调 在GUI绘制中,工具--->选择GUI选项---->选择第二个成比例 再运行就可以调控大小了
- 重写servlet,可以获取不同的方法
public class BaseServlet extends HttpServlet { @Override public void service(HttpServletRequest requ ...
- PAT_A1141#PAT Ranking of Institutions
Source: PAT A1141 PAT Ranking of Institutions (25 分) Description: After each PAT, the PAT Center wil ...
- windows开机自启动bat脚本设置
群里有朋友问到windows下如何设计开机自启动的脚本,一般而言小鱼大多还是在linux环境下运维,windows的bat了解的很少,windows运行机制也不是特别了解,不过既然朋友问到这个问题,虽 ...
- 使用VirtualBox实现端口转发,以SSH与Django为例
先来认识几个概念 (1)IP地址:又称为互联网协议地址,是计算机的物理地址,相当于计算机的编号,是32位的二进制数,通常被分割成4个8位的二进制数: (2)端口:指设备与外界通讯的接口,一台计算机的端 ...
- 使用VS Code断点调试PHP
vs code 使用一款杰出的轻量级代码编辑器,其中的插件工具不胜枚举而且还在不断增加.使用 vs code 调试 php 代码更是方便简洁,下面我们来一起看一下. 1. 安装 XDebug 扩展 调 ...
- 关于autoupgader的狗屎问题
由于win7和xp的权限问题,导致这个自动升级玩意不正常.这个狗屎问题很简单,把exe文件的兼容性设定该一下.真是气死洒家了.
- 关于Bubblesort算法
Java中的经典算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2 ...
- A. Feed the cat
A. Feed the cat time limit per test: 1 second memory limit per test: 256 megabytes input: standard i ...