[TOC]
*****
# 定义模型
| 版本 | 调整功能 |
| --- | --- |
| 5.0.5 | `model`或者`Loader::model`方法支持传入完整的模型类名 |
## 模型定义
定义一个User模型类:
~~~
namespace app\index\model;
use think\Model;
class User extends Model
{
}
~~~
默认主键为自动识别,如果需要指定,可以设置属性:
~~~
namespace app\index\model;
use think\Model;
class User extends Model
{
protected $pk = 'uid';
}
~~~
模型会自动对应数据表,模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,例如:
| 模型名 | 约定对应数据表(假设数据库的前缀定义是 think\_) |
| --- | --- |
| User | think\_user |
| UserType | think\_user\_type |
如果你的规则和上面的系统约定不符合,那么需要设置Model类的数据表名称属性,以确保能够找到对应的数据表。
## 设置数据表
如果你想指定数据表甚至数据库连接的话,可以使用:
~~~
namespace app\index\model;
class User extends \think\Model
{
// 设置当前模型对应的完整数据表名称
protected $table = 'think_user';
// 设置当前模型的数据库连接
protected $connection = [
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'thinkphp',
// 数据库用户名
'username' => 'root',
// 数据库密码
'password' => '',
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => 'think_',
// 数据库调试模式
'debug' => false,
];
}
~~~
和连接数据库的参数一样,`connection`属性的值也可以设置为数据库的配置参数,而且也是官方推荐的方式,这样可以避免把数据库连接固化在代码里面。
>[info] 5.0不支持单独设置当前模型的数据表前缀。
## 模型调用
模型类可以使用静态调用或者实例化调用两种方式,例如:
~~~
// 静态调用
$user = User::get(1);
$user->name = 'thinkphp';
$user->save();
// 实例化模型
$user = new User;
$user->name= 'thinkphp';
$user->save();
// 使用 Loader 类实例化(单例)
$user = Loader::model('User');
// 或者使用助手函数`model`
$user = model('User');
$user->name= 'thinkphp';
$user->save();
~~~
>[info] 实例化模型类主要用于调用模型的自定义方法,更多用法参考后面的章节内容。
- 前言
- 更新说明
- 数据库说明
- 第一章 前端框架及插件
- 第一节 Bootstrap
- 第二节 Layui
- 第三节 Vue.js
- 1.Element UI
- 第四节 DataTables
- 1.数据源
- 第二章 Thinkphp 5.0
- 控制器
- 第一节 增加
- 第二节 删除
- 第三节 修改
- 第四节 查询
- MVC
- 第一节 增加
- 第二节 删除
- 第三节 修改
- 第四节 查询
- MVC+AJAX
- 第一节 增加
- 第二节 删除
- 第三节 修改
- 第四节 查询
- 小功能
- 第一节 常用函数
- 第二节 随机数
- 第三节 URL
- 扩展开发
- 第一节 分布式数据库
- 第二节 内容上传
- 1.本地上传
- 2.七牛云上传
- 第三节 导入导出
- 1.Excel
- 2.Word
- 第四节 发送邮件
- 第五节 模板分离
- 第六节 注册登录
- 1.用户登录
- 2.用户注册
- 3.管理登录
- 第七节 菜单导航
- 第八节 判断手机
- 第九节 富文本编辑器
- 1.Ueditor
- 2.CKEditor
- 第十节 购物车
- 第十一节 安全验证
- 1.默认验证码
- 常用API开发
- 第一节 API接口使用
- 第二节 微信开发
- 附件下载
- 第一节 ThinkPHP 优化版
- 第二节 常用后台模板下载
- 实例源码
- 第一节 MQ CMS
- 第二节 MQ Edu