thinkphp如果表名有下划线需要用Model
模型命名规范
ThinkPHP 对数据库的表名和模型类的命名遵循一定的规范。首先数据库的表名和字段全部采用小写形式,模型类的命名规则是除去表前缀的数据表名称,并且首字母大写,然后加上模型类的后缀定义。一些例子如下:
表名(不含前缀) | 模型名称(类名) | 文件名 | 例子 |
---|---|---|---|
user | UserModel | UserModel.class.php | class UserModel extends Model{} |
user_group | UserGroupModel | UserGroupModel.class.php | class UserGroupModel extends Model{} |
提示:系统以驼峰命名法来识别带下划线的表名。
当项目中的表命名规则和 ThinkPHP 中的约定不符时(常常会有这种情况),ThinkPHP 允许对 Model 类的 tableName 和 trueTableName 属性进行设置以达到兼容的目的。
tableName 属性
当表前缀和系统设置的前缀(DB_PREFIX)一致而表名和模型名称不一致时,可设置此属性,例如表名称为 users ,而模型名称为 UserModel ,那么需要在模型类设置:
class UserModel extends Model{protected $tableName = 'users'; }
trueTableName 属性
如果表的前缀跟系统设定的不一致(表名和模型名可能一致)时,需要设定模型的 trueTableName 属性:
class UserModel extends Model{protected $trueTableName = 'my_user'; }
注意 trueTableName 值为完整的表名(包括前缀)。
dbName 属性
dbName 属性定义模型当前对应的数据库名称,只有当前的模型类对应的数据库名称和配置文件不同的时候才需要定义:
protected $dbName = 'cdb';
模型:HelloWorldModel.class.php
代码
- # HelloWorldModel.class.php
- namespace ...
- use ...
- classs HelloWorldModel extend Model {
- public function getYourHeader() {
- }
- }
- # 使用
- D('HelloWorld')->getYourHeader();
- # 模型名称不能使用下划线,如果是使用D加载模型
就这样,就已经是操作think_hello_world表了啊
转载于:https://www.cnblogs.com/caicaizi/p/5603274.html
thinkphp如果表名有下划线需要用Model相关推荐
- ThinkPHP如果表名有下划线需要用Model应该怎么做?
最近遇到一个问题,在用TP做系统的时候,我建立的表是 "tp_admin_user" 但是要用到的模型是 "AdminUserModel.model.class.php& ...
- mysql 表名带下划线_在MySQL中可以使用下划线作为表名吗?
是的,我们可以在表名周围使用反引号将下划线添加为表名.以下是语法-INSERT INTO `yourTableName` values(yourValue1,.......N); 让我们首先创建一个表 ...
- linux mysql 修改表名_Linux下mysql怎么设置表名?
Linux下mysql可以通过"ALTER TABLE 旧表名 RENAME [TO] 新表名;"语句来修改表名:还可以通过配置my.cnf文件,修改"lower_cas ...
- pytorch中(函数名有下划线和没有下划线)clamp和clamp_的区别
在pytorch中,我们需要注意,对于tensor的操作时候是in-place类型. in-place类型是指,但在一个tensor上操作了之后,是直接修改了这个tensor,还是返回一个新的tens ...
- SolidWorks打开step格式后零件名变成下划线的解决方法
打开SolidWorks,打开选项,找到"系统选项"中的"导入",将"文件格式"中的启用3DInterconnect前的√取消即可.
- JPA映射数据库mysql表名,字段名大小写转化,下划线分割.
遇到小写加下划线"_" 的命名 spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm ...
- mysql 参数名 下划线,MySQL表名称中的下划线会引起问题吗?
不,MySQL表名中的下划线不会有任何问题.您将在MySQL表名称中出现破折号. 这是演示,使用表名的下划线没有任何问题-_StudentTrackerDemo 让我们在创建表时看到相同的内容.创建表 ...
- Python中的方法名前加下划线
在Python中,方法名前加下划线通常有以下几种用法和约定: 单个前导下划线(_methodName):这是一种约定,用于指示该方法是类的内部使用方法,应该被视为私有方法.虽然在语法上并没有强制限制, ...
- SpringBoot - MyBatis-Plus使用详解2(设置实体类对应的表名、字段名 )
二.设置模型对应的表名.字段名 1,设置关联的表名 (1)默认情况下,如果数据库表是使用标准的下划线命名,并且能对应上实体类的类名,我们就不需要特别去手动匹配.比如有张 user_info 表,那么会 ...
最新文章
- 河南城建学院linux期末试题,河南城建学院09-10(上)期末试题.ppt
- php用w获取的星期不对,php获取时间是星期几的方法是什么
- Spring Boot中使用LDAP来统一管理用户信息
- mule和activemq_Mule ESB,ActiveMQ和DLQ
- 【面向对象】面向对象程序设计测试题1-Java语言的发展与特性测试题
- Excel 宏写入文件乱码解决
- 为Pokémon Go而生的聊天软件GoChat,坐拥百万用户却快要破产
- 云计算介绍-1.2,IaaS\PaaS\SaaS比较
- 写软件开发需求你必须掌握的规格
- bufferedreader读取中文乱码_Python OpenCV与中文相关的三个常见问题
- 神马是敏捷?(3)——敏捷在中国的水土不服
- 操作系统高响应比优先调度算法模拟实验
- 有限单元法基本原理和数值方法_有限元法基本原理
- 详解高斯过程回归和核贝叶斯线性回归
- animal farm 第一章阅读笔记
- AI视觉传感器作用和应用介绍
- 每个前端都值得拥有自己的组件库,就像每个冬天都拥有春秋裤
- 【CSS—美化网页元素】
- 中瀛手机销售软件 绘图软件
- 常见商品期货量化交易策略
热门文章
- cuda第一次计算耗时_CUDA优化的冷知识10 | GPU卡和Jetson上显存优化的特色
- STM32F0308DISCOVERY探索套件
- 单人制作游戏手册之五:好看的素材令人心旷神怡!
- 前端性能优化(PC版)
- ORACLE_关于OGG参数.ENABLE_GOLDENGATE_REPLICATION
- AIX使用vi时报History file has no read permission
- 小米11和华为p40pro哪个好
- C:如何分解整数(从末位往前取以及从首位往后取)
- NOIP 2013 day1
- java 保护内存操作的方法