模型类需要去除表前缀(tp_),采用驼峰式命名,并且首字母大写;
tp_user(表名) => User
tp_user_type(表名) => UserType
为了减少内存,需要在 config/database.php 开启字段缓存;
// 开启字段缓存
'fields_cache' => true,
如果想全局开启’模型自动时间戳’,在 database.php 中,设置为 true;
// 自动写入时间戳字段
'auto_timestamp' => true,
'auto_timestamp' => 'datetime',//设置自动时间戳为datetime类型
<?php //模型php文件 User.php
namespace app\index\model;
use think\Model;
class User extends Model
{
use SoftDelete;//开启软删除
protected $deleteTime = 'delete_time';//设置软删除字段
protected $defaultSoftDelete = 0;//delete_time 默认为 null,如不是,可自定义
protected $pk = 'user_id';//默认主键为 id,设置其他为user_id
protected $table = 'tp_one';//默认数据表为tp_user,设置其他为tp_one
protected $autoWriteTimestamp = true;//开启自动时间戳
protected $autoWriteTimestamp = 'datetime';//设置自动时间戳为datetime类型
protected $createTime = 'create_at';//修改自动时间戳——创建字段
protected $createTime = false;//不需要 自动时间戳——创建字段 的时候
protected $updateTime = 'update_at';//修改自动时间戳——修改字段
protected $updateTime = false;//不需要 自动时间戳——修改字段 的时候
protected $readonly = ['username', 'email'];//只读字段,不允许被修改
protected $disuse = ['status', 'uid'];//废弃字段,读取会忽略,写入忽略(存疑,未验证);
protected $json = ['list'];//设置 json 字段的字符字段;
// *************************************//
protected static function init(){
//模型初始化,第一次实例化的时候执行 init
echo '初始化 User 模型';
}
// *************************************//
public function getStatusAttr($value){
//模型获取器。get“Status”Attr。(在获取数据时,把Status值转换为别的数据)
$status = [-1=>'删除', 0=>'禁用', 1=>'正常', 2=>'待审核'];
return $status[$value];
}