ThinkPHP6项目基操(7.模型)
模型
- 一、模型的定义及基本使用
- 二、模型查询及其他使用
- 1. new 模型对象
- 2. 模型获取器
一、模型的定义及基本使用
与Db操作数据库相比,使用模型Model
类更方便。
在controller
文件夹同级目录新建文件夹model
,再新建Model
类,文件名与数据库的数据表名对应,如数据表为demo
,那么模型类取名为Demo.php
:
<?php
namespace app\model;
use think\Model;class Demo extends Model
{}
在控制器中使用模型类:
public function model1(){$result = Demo::find(2);dump($result);
}
浏览器输出:
这是输出的模型对象,如果要直接输出data数据,可以使用toArray
方法:
dump($result->toArray());
浏览器输出:
二、模型查询及其他使用
1. new 模型对象
除了上面的直接使用静态方法,也可以先new
一个对象再来操作,返回的也是模型对象或模型对象集合,也可以使用toArray
方法来转换为数组:
public function model2(){$model = new Demo();$result = $model->where('id','>',2)->select();dump($result);
}
2. 模型获取器
模型获取器可以修改字段的值,也可以定义数据表不存在的字段,方法名称定义规则为get[字段大驼峰名]Attr
,如getStatusTextAttr
,数据库中有status
字段,model
类修改为:
<?phpnamespace app\model;
use think\Model;class Demo extends Model
{public function getStatusTextAttr($value, $data){$status = [0 => '待审核',1 => '正常',99 => '删除'];return $status[$data['status']];}
}
控制器调用,大驼峰命名改为下划线小写
方式:
public function model2(){$model = new Demo();$result = $model->find(2);dump($result->status_text); // "待审核"dump($result->toArray());
}
但是直接转换为数组,还是不会有status_text
字段:
如果要获取包含获取器处理的数据表中不存在的
数据属性,可以使用append
方法添加,数据表已存在的字段可以不用处理,会自动返回:
dump($result->append(['StatusText'])->toArray());
append
的属性可以是大驼峰
命名,也可以是下划线小写
方式:
dump($result->append(['status_text'])->toArray());
结果:
⭐️重磅推荐:免费商用电商系统
ThinkPHP6项目基操(7.模型)相关推荐
- ThinkPHP6项目基操目录
前言 ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色 ...
- ThinkPHP6项目基操(15.实战部分 阿里云短信redis)
阿里云短信redis 一.安装阿里云短信SDK 二.封装到项目lib中 三.radis记录验证码 1. 安装redis服务 2. 可视化redis管理软件 3. PHP安装redis扩展 4. 配置缓 ...
- ThinkPHP6项目基操(19.实战部分 Mysql模型事务操作)
模型事务操作 前言 1. Mysql数据库注意 2. thinkPHP模型使用事务 前言 事务操作在复杂的数据库操作的时候尤为重要,特别是在操作多张表的时候,如果某一步骤出错了,就会导致有脏数据,会很 ...
- ThinkPHP6项目基操(20.实战部分 数据库操作返回值总结)
数据库操作返回值总结 0. 前言 1. Db类操作数据库 1.1 新增 1.2 更新 1.3 删除 1.3.1 单条删除 1.3.2 批量删除 1.4 查询 1.4.1 单笔记录 1.4.2 多笔记录 ...
- ThinkPHP6项目基操(13.实战部分 项目中的自定义异常处理总结 错误页面API错误)
项目中的自定义异常处理总结 错误页面&API错误 前言 一.异常分类 1. 控制器找不到 2. 方法找不到 3. 请求资源不存在 4. 系统內部异常.HTTP异常等 二.异常处理 1. 前置处 ...
- ThinkPHP6项目基操(11.实战部分 部署后台静态页面模板及后台登录页面)
实战部分 部署后台静态页面模板及后台登录页面 前言 一.部署静态资源到项目 1.新建后台静态资源文件夹 二.后台登录页面 1. 目录结构 2. 模板字符串替换配置 前言 网站后台一般是在基础静态页面上 ...
- ThinkPHP6项目基操(9.架构分层)
架构分层 一.分层意义 二.代码架构 三.common层设计 四.实践代码 一.分层意义 意义我觉得最重要的是方便维护,如果代码没有分层,都是写在控制器里,包括了各种参数校验,各种情景判断,各种数据查 ...
- ThinkPHP6项目基操(8.多应用模式)
多应用模式 一. 安装多应用模块 二. 修改应用目录结构 三. 多应用路由配置 默认安装的TP6是但应用的,如果需要使用多应用模式,需要安装插件. 一. 安装多应用模块 composer requir ...
- ThinkPHP6项目基操(4.拦截无效请求 控制器或方法不存在)
拦截无效请求 控制器或方法不存在 一.默认无效请求 二.显示具体错误信息 方法1.配置`config/app.php` 方法2. 配置`.env`环境变量 三.处理错误 1. 方法不存在 2. 控制器 ...
最新文章
- Ext.Net学习笔记19:Ext.Net FormPanel 简单用法
- python学习-之汉诺塔实现
- onenote复制出来是图片_你真的了解 OneNote 吗?
- mysql union all 别名_mysql union和union all
- android uri跳转导航,android:scheme 通过uri跳转到APP应用指定Activity
- 为什么只有软件就可以用盗版?
- ZOJ 2760 How Many Shortest Path 最大流+floyd求最短路
- ffmpeg系列-协议操作解析-AVIOContext,URLContext,URLProtocol,HTTPContext
- micropython按键控制流水灯_【MicroPython】LAB01 - 流水灯
- VC连接SQL2005
- win10隐藏任务栏_win7/10任务栏合并但不隐藏标签
- 搜索引擎算法大全-(百度+360+搜狗)
- 使用MATLAB计算个人所得税
- Excle常用快捷键
- 专访许长敬:移动互联网将进入电子商务阶段
- [Kong 与 Konga 与 Postgres数据库] 之 Kuberneres 部署
- 阿里云linux centos 7.4下安装mongodb 3.4
- 小黄鸭坤坤(Python高还原绘图)
- 栈(stack) C语言实现 详解
- Sourcer與Buyer之職務分工