Eyoucms程序开发:定义
版本 | 调整功能 |
---|---|
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
属性的值也可以设置为数据库的配置参数,而且也是官方推荐的方式,这样可以避免把数据库连接固化在代码里面。
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();
实例化模型类主要用于调用模型的自定义方法,更多用法参考后面的章节内容。
相关文档
- 使用VenoBox弹出窗口灯箱插件实现图片相册功能
- 迅睿cms使用全局表单制作证书查询功能
- 迅睿cms站群系统实现全国城市分站功能插件及调用标签
- 利用搜索引擎的自动填充功能挖掘问题型词汇
- 利用搜索引擎自动填充功能拓展各类关键词
- 如何禁用WordPress的XML-RPC功能
- 为你的WordPress添加图片替换功能 Enable Medi...
- 迅睿CMS:移动端评论表单无法加载自定义字段
- 易优channel栏目标签的附加功能使用教程
- 易优调用四级栏目或者更多级别栏目的标签
- 搜索功能的调用代码
- 首页或者列表页直接调用下载的标签
- 装修类网站如何使用关联设计师功能
- 管理员功能使用指南
- 留言内容管理
- 易优URL启用https功能简述
- 45°C商城:商品管理
- 45°C商城:功能列表图
- 迅睿CMS:自定义网站表单/全局表单提交样式
- 迅睿CMS:field自定义字段输出参数技巧
上一篇: Eyoucms程序开发:分布式数据库
下一篇: Eyoucms程序开发:模型初始化