Db与模型的区别

Db查询返回的数据类型为数组

模型查询返回类型的是模型对象实例

模型定义

写法:

<?php    
namespace app\index\model;
use think\Model;
class User extends Model{
}

模型定义的要素:

  • 通常会继承 think\Model(或者子类) ,虚拟模型除外;
  • 一个模型可以一对一,一对多;
  • (一个模型类对应操作的数据是一张表,模型类实例化对象就是表里的一条数据)
  • 模型名和数据表名可以不是直接对应关系
  • 空模型与Db类功能一样,但意义不用。

模型定义的目的

  • 定义数据表(默认就是模型类名)
  • 定义数据表主键(默认会自动获取)
  • 定义数据库连接(默认使用数据库配置)
  • 定义数据处理逻辑(包括属性和方法)
  • 定义业务逻辑(方法)

模型定义不支持

  • 数据表字段(不需要,会自动获取,并支持缓存机制)
  • 数据表前缀(不支持,模型不关心前缀)
模型名对应数据表
Useruser
UserTypeuser_type
Userthink_user
UserTypethink_user_type

模型调用

模型支持实例化调用和静态调用(主要是查询,查询后会返回一个模型对象实例)。

实例化调用

$user = new \app\index\model\User();

静态调用

$user = \app\index\model\User::get(1);

助手函数

$user = model('User');

tp中表名都是按照小写加下划线的命名规则命名,表名转成类文件名和类名去掉表前缀,用驼峰法

:one: :

:two: :重用度高

:three: :先整体后局部

最后编辑:2020年02月11日 ©著作权归作者所有

发表评论

正在加载 Emoji