官方文档:
模型会自动对应数据表,模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,例如:
模型名 约定对应数据表(假设数据库的前缀定义是 think_)
User think_user
UserType think_user_type
如果你的规则和上面的系统约定不符合,那么需要设置Model类的数据表名称属性,以确保能够找到对应的数据表
// 设置当前模型对应的完整数据表名称
protected $table = 'think_user';
若不想设置完整的数据表名
protected $table = 'user';
则需要在thinkphp/library/think/Model.php 文件进行修改
修改前:
// 设置当前数据表和模型名
if (!empty($this->table)) {
$query->setTable($this->table);
} else {
$query->name($this->name);
}
修改后:
// 设置当前数据表和模型名
$config = Config::get('database');
if (!empty($this->table)) {
$query->setTable($config['prefix'].$this->table);
} else {
$query->name($this->name);
}
需要确保database.php中配置了数据库表前缀‘prefix’
关联
关联方法的命名规范是驼峰法,而关联属性则一般是小写+下划线的方式,系统在获取的时候会自动转换对应,读取user_profile关联属性则对应的关联方法应该是userProfile。
网友评论