🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 模型 模型使用ThinkORM实现,操作同tp一致 文档请参看 [## 模型定义](https://www.kancloud.cn/manual/think-orm/1258044) 模型是`ThinkORM`的一个重要组成,`Db`和模型的存在只是`ThinkORM`架构设计中的职责和定位不同,`Db`负责的只是数据(表)访问,模型负责的是业务数据和业务逻辑,实现了数据对象化访问的封装。 相对于使用`Db`类来说模型的优势主要在于: * 支持`ActiveRecord`实现; * 灵活的事件机制; * 数据自动处理能力; * 简单直观的数据关联操作; * 封装业务逻辑; # 定义 ## 模型定义 定义一个模型类很简单,下面是一个最简单的`User`模型: 文件路径application/index/model/User.php ~~~ <?php namespace application\index\model; use think\Model; class User extends Model { public function getList($size = 10,$page = 1,$where = null) { $list = $this ->where($where) ->order(['id' => 'desc']) ->cache(true) ->paginate([ 'list_rows'=> $size, 'page' => $page, ]); return $list; } ~~~ > 请确保你已经在数据库配置文件中配置了数据库连接信息,如不清楚请参考数据库一章 模型会自动对应数据表,模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,例如: | 模型名 | 约定对应数据表(假设数据库的前缀定义是`think_`) | | --- | --- | | User | think\_user | | UserType | think\_user\_type | 如果你的规则和上面的系统约定不符合,那么需要设置模型类的数据表名称`table`属性,以确保能够找到对应的数据表。 > 模型自动对应的数据表名称都是遵循小写+下划线规范,如果你的表名有大写的情况,必须通过设置模型的`table`属性。