模型

  • 一、模型的定义及基本使用
  • 二、模型查询及其他使用
    • 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.模型)相关推荐

  1. ThinkPHP6项目基操目录

    前言 ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色 ...

  2. ThinkPHP6项目基操(15.实战部分 阿里云短信redis)

    阿里云短信redis 一.安装阿里云短信SDK 二.封装到项目lib中 三.radis记录验证码 1. 安装redis服务 2. 可视化redis管理软件 3. PHP安装redis扩展 4. 配置缓 ...

  3. ThinkPHP6项目基操(19.实战部分 Mysql模型事务操作)

    模型事务操作 前言 1. Mysql数据库注意 2. thinkPHP模型使用事务 前言 事务操作在复杂的数据库操作的时候尤为重要,特别是在操作多张表的时候,如果某一步骤出错了,就会导致有脏数据,会很 ...

  4. 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 多笔记录 ...

  5. ThinkPHP6项目基操(13.实战部分 项目中的自定义异常处理总结 错误页面API错误)

    项目中的自定义异常处理总结 错误页面&API错误 前言 一.异常分类 1. 控制器找不到 2. 方法找不到 3. 请求资源不存在 4. 系统內部异常.HTTP异常等 二.异常处理 1. 前置处 ...

  6. ThinkPHP6项目基操(11.实战部分 部署后台静态页面模板及后台登录页面)

    实战部分 部署后台静态页面模板及后台登录页面 前言 一.部署静态资源到项目 1.新建后台静态资源文件夹 二.后台登录页面 1. 目录结构 2. 模板字符串替换配置 前言 网站后台一般是在基础静态页面上 ...

  7. ThinkPHP6项目基操(9.架构分层)

    架构分层 一.分层意义 二.代码架构 三.common层设计 四.实践代码 一.分层意义 意义我觉得最重要的是方便维护,如果代码没有分层,都是写在控制器里,包括了各种参数校验,各种情景判断,各种数据查 ...

  8. ThinkPHP6项目基操(8.多应用模式)

    多应用模式 一. 安装多应用模块 二. 修改应用目录结构 三. 多应用路由配置 默认安装的TP6是但应用的,如果需要使用多应用模式,需要安装插件. 一. 安装多应用模块 composer requir ...

  9. ThinkPHP6项目基操(4.拦截无效请求 控制器或方法不存在)

    拦截无效请求 控制器或方法不存在 一.默认无效请求 二.显示具体错误信息 方法1.配置`config/app.php` 方法2. 配置`.env`环境变量 三.处理错误 1. 方法不存在 2. 控制器 ...

最新文章

  1. Ext.Net学习笔记19:Ext.Net FormPanel 简单用法
  2. python学习-之汉诺塔实现
  3. onenote复制出来是图片_你真的了解 OneNote 吗?
  4. mysql union all 别名_mysql union和union all
  5. android uri跳转导航,android:scheme 通过uri跳转到APP应用指定Activity
  6. 为什么只有软件就可以用盗版?
  7. ZOJ 2760 How Many Shortest Path 最大流+floyd求最短路
  8. ffmpeg系列-协议操作解析-AVIOContext,URLContext,URLProtocol,HTTPContext
  9. micropython按键控制流水灯_【MicroPython】LAB01 - 流水灯
  10. VC连接SQL2005
  11. win10隐藏任务栏_win7/10任务栏合并但不隐藏标签
  12. 搜索引擎算法大全-(百度+360+搜狗)
  13. 使用MATLAB计算个人所得税
  14. Excle常用快捷键
  15. 专访许长敬:移动互联网将进入电子商务阶段
  16. [Kong 与 Konga 与 Postgres数据库] 之 Kuberneres 部署
  17. 阿里云linux centos 7.4下安装mongodb 3.4
  18. 小黄鸭坤坤(Python高还原绘图)
  19. 栈(stack) C语言实现 详解
  20. Sourcer與Buyer之職務分工

热门文章

  1. 防范攻击 加强管控 - 数据库安全的16条军规
  2. 多线程“基础篇”11之 生产消费者问题
  3. STL--map用法
  4. SONICWALL E-Class NSA 系列简介
  5. RAC crs_stat unknown资源状态处理
  6. 在后台获取前台按钮里的值(如LinkButton)
  7. Active Diretory 全攻略(三)--建立域(5)
  8. 飞秋局域网聊天是一种技术工作
  9. 针对C++最主要的优势就是没有指针
  10. 洪磊父亲避谈洪磊获释 拘留已过24小时留滞期