php

thinkPHP中模型类的定义

2023-10-09

在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: 数据库名