首页 > 代码库 > ThinkPHP模型定义
ThinkPHP模型定义
模型类一般位于项目的Lib/Model 目录下面,当我们创建一个UserModel类的时候,其实已经遵循了系统的约定。模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,然后加上模型类的后缀定义Model,例如:
如果你的规则和上面的系统约定不符合,那么需要设置Model类的数据表名称属性。
在ThinkPHP的模型里面,有几个关于数据表名称的属性定义:
模型名(类名) | 约定对应数据表(假设数据库的前缀定义是 think_) |
---|---|
UserModel | think_user |
UserTypeModel | think_user_type |
在ThinkPHP的模型里面,有几个关于数据表名称的属性定义:
属性 | 说明 |
---|---|
tableName | 不包含表前缀的数据表名称,一般情况下默认和模型名称相同,只有当你的表名和当前的模型类的名称不同的时候才需要定义。 |
trueTableName | 包含前缀的数据表名称,也就是数据库中的实际表名,该名称无需设置,只有当上面的规则都不适用的情况或者特殊情况下才需要设置。 |
dbName | 定义模型当前对应的数据库名称,只有当你当前的模型类对应的数据库名称和配置文件不同的时候才需要定义。 |
下面举个例子来加深理解,例如,在数据库里面有一个think_categories表,而我们定义的模型类名称是CategoryModel,按照系统的约定,这个模型的名称是Category,对应的数据表名称应该是think_category(全部小写),但是现在的数据表名称是think_categories,因此我们就需要设置tableName属性来改变默认的规则(假设我们已经在配置文件里面定义了DB_PREFIX 为 think_)。
而对于另外一种特殊情况,数据库中有一个表(top_depts)的前缀和其它表前缀不同,不是think_ 而是 top_,这个时候我们就需要定义 trueTableName 属性了
除了数据表的定义外,还可以对数据库进行定义,例如:
- protected $tableName = ‘categories‘;
而对于另外一种特殊情况,数据库中有一个表(top_depts)的前缀和其它表前缀不同,不是think_ 而是 top_,这个时候我们就需要定义 trueTableName 属性了
- protected $trueTableName = ‘top_depts‘;
除了数据表的定义外,还可以对数据库进行定义,例如:
- protected $dbName = ‘top‘;
4
ThinkPHP模型定义
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。