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