[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()相同,同时它可以记录当前执行的方法名、参数以及出错信息以供后续处理