在thinkphp中基础的模型类是think\model,该类完成了基本的curd、activerecord模式、连贯操作和统计查询,一些高级特性被封装到其他模型扩展中。

基础模型类的设计非常灵活,甚至可以无需进行任何模型定义,就可以进行相关表的orm和curd操作,只有在需要封装单独的业务逻辑时模型类才需要被定义。

模型定义

模型类需要继承think\model或子类。

如果按照系统的规范来命名模型类的话,可以自动关联数据表。

命名规则
是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,然后加上模型层的名称(默认是model,配置项 default_m_layer ),如:

usermodel =>  pre_user
usertypemodel => pre_user_type

如果你的规则和系统的约定不匹配,则需要手动指定对应的数据表。

数据表定义

在模型基类里有几个关于数据表名称的属性定义,重写这几个属性即可以指定任意表。

  • tableprefix: 表前缀,如果未定义则获取 db_prefix
  • tablename: 不包含表前缀的表名,统一会转换成小写
  • truetabelname: 包含表前缀的表名,数据库中的实际表名
  • dbname: 数据库名