[TOC]

## 概述

数据层是用来直接操作数据表的,数据层的方法都是原子的操作,应避免在数据层中处理具体业务流程,具体业务流程应在逻辑层进行处理。

## 数据层类定义

数据层类通常需要继承核心的\think5\Model类或其子类,下面是一个User数据层类的定义:

~~~

namespace dm\[module]\model;

use think5\Model;

use function think5\out;

class User extends Model

{

public function get_user_info(){

//获取用户表信息代码

return out('获取成功',1,$data);

}

}

~~~

User数据层类对应的文件位置是

~~~

module/[module_name]/model/User.php

~~~

数据层类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,例如

| 数据层类名 | 约定对应数据表(假设数据库的前缀定义是 d_) |

| -- | -- |

| User | d_user |

| UserType | d_user_type |

## 数据层类核心方法

1. 连贯操作:$this->where()->...->order()->limit()->select()

2. 定义表别名可以使用:$this->alias('a')->...

3. 应尽量避免在数据层中调用其他数据层代码(当前文件的private方法除外)

## 标准返回结果

1. 返回数据应使用标准返回方法:think5/out();建议在类头部声明use function think5\out,以便在类中直接使用out()方法

2. think5\out() 有三个参数,第一个参数为返回的提示信息;第二个参数为方法执行后的状态(一般1为操作成功,0为操作失败,当然也可以定其他值以表达更多状态),状态参数默认为0;第三个参数为想要返回的数据集,默认为空数组

3. 如果需要使用数据库记录运行时发生的错误信息,则可使用think5/outlog()进行返回,该函数的参数与返回模式与think5/out()相同,同时它可以记录当前执行的方法名、参数以及出错信息以供后续处理

php 数据中心,数据层 · Thinkphp 独立数据中心使用手册 · 看云相关推荐

  1. php记录读取数据类型,数据读取 · ThinkPHP 3.2.3开发手册 · 看云

    # 数据读取 在ThinkPHP中读取数据的方式很多,通常分为读取数据.读取数据集和读取字段值. 数据查询方法支持的连贯操作方法有: 连贯操作 作用 支持的参数类型where 用于查询或者更新条件的定 ...

  2. php tp3.2 添加表内容,数据创建 · ThinkPHP3.2.3完全开发手册 · 看云

    在进行数据操作之前,我们往往需要手动创建需要的数据,例如对于提交的表单数据: ~~~ // 获取表单的POST数据 $data['name'] = $_POST['name']; $data['ema ...

  3. 数据缓存 php,数据缓存 · ThinkPHP3.2.3完全开发手册 · 看云

    在ThinkPHP中进行缓存操作,一般情况下并不需要直接操作缓存类,因为系统内置对缓存操作进行了封装,直接采用S方法即可,例如: ## 缓存初始化 ~~~ // 缓存初始化 S(array('type ...

  4. php心跳检测实时数据,心跳检测 · swoole手册 · 看云

    # 心跳 注意:长链接应用必须加心跳,否则链接可能由于长时间未通讯被路由节点强行断开. 心跳作用主要有两个: 1.客户端定时给服务端发送点数据,防止连接由于长时间没有通讯而被某些节点的防火墙关闭导致连 ...

  5. thinkphp+mysql+join+where_join · ThinkPHP5.1完全开发手册 · 看云

    `JOIN`方法用于根据两个或多个表中的列之间的关系,从这些表中查询数据.join通常有下面几种类型,不同类型的join操作会影响返回的数据结果. - **INNER JOIN**: 等同于 JOIN ...

  6. php thinkphp中间件,中间件 · ThinkPHP6.0完全开发手册 · 看云

    中间件主要用于拦截或过滤应用的`HTTP`请求,并进行必要的业务处理. >[danger] 新版部分核心功能使用中间件处理,你可以灵活关闭.包括Session功能.请求缓存和多语言功能. ## ...

  7. 设计数据层组件并在层间传递数据

    Angela Crocker.Andy Olsen 和 Edward Jezierski Microsoft Corporation 2002年8月 适用于:     Microsoft® .NET ...

  8. 【电商数仓】数仓搭建之明细数据(data warehouse detail -- DWD)层(用户行为数据之曝光、错误日志表、数据加载脚本,业务数据之评价、订单事实表)

    文章目录 一 曝光日志表 1 思路解析 2 建表语句 3 数据导入 4 查看数据 二 错误日志表 1 思路解析 2 建表语句 3 数据导入 4 查看数据 三 DWD层用户行为数据加载脚本 四 DWD层 ...

  9. mysql 数据展示装置_实时生成数据宽表的方法和装置与流程

    本发明涉及计算机技术领域,尤其涉及一种实时生成数据宽表的方法和装置. 背景技术: 数据仓库是面向主题的.集成的.相对稳定的.随时间不短变化得数据集合,用以支持经营管理中的决策制定.数据仓库中的数据面向 ...

最新文章

  1. 网电空间战 6-如何进攻
  2. LuManager使用中典型问题整理集合
  3. eclipse的默认(打开)编辑器的更改
  4. dosubmit 成功不成功_供卵试管不成功的原因是什么?一般几次成功?
  5. 经典面试题(13):如何理解和应用JavaScript闭包?
  6. 【matlab-1】工具箱、窗口、变量的存储与加载、帮助
  7. .net Cache 需要注意的地方
  8. 一、Java多线程基础
  9. docker安装awvs13
  10. 四 H264解码输出yuv文件
  11. 几何分布的期望和方差公式推导_二项分布与负二项分布的均值与方差推导
  12. 进一步解析ie环境下z-index问题解决方法
  13. Python练习:炉石传说荣誉室返尘最优策略
  14. 叶雕——叹为观止的艺术!
  15. 华东师范大学计算机模拟试题,华东师范大学计算机机试真题
  16. NIOS II 内核使用 之 代码保存FLASH(EPCSX芯片)
  17. GPT系列简介与gpt训练(nanoGPT)
  18. 如何提升网站的浏览率
  19. 挖藕!模拟sql抓取qq密码
  20. BPM是什么意思?BPM的优势及好处有哪些?

热门文章

  1. the virtual machine is configured for 64-bit guest operating systems
  2. Nginx多域名多Server反向代理配置
  3. java.lang.NoClassDefFoundError Adding a jar to an RCP application
  4. Linux下CMake简明教程
  5. http、TCP/IP协议与socket之间的区别
  6. android跳转到打电话,Android 应用跳转到拨打电话界面或qq进行聊天(qq咨询)
  7. html 服务器运行exe,html运行exe文件,兼容浏览器
  8. 2019ug最新版本是多少_NX1847:2019年最新版本,从某种意义上来说,也将是终极版本...
  9. laravel模板写php代码,Laravel框架之blade模板新手入门教程及小技巧
  10. 047_Unicode对照表十三