Yii 2 —— Model表前缀

简介:

1.1  Model表前缀

在大多数系统中,对于数据库的表名称都喜欢在前面增加一个前缀,譬如ecshop系统的表名称,都有前缀“ecs_”,在它们的代码中到处充斥着如下代码:

 

$GLOBALS['ecs']->table('goods')

 

这种代码的目的是把前缀“ecs”和后面的名称拼接起来获得“ecs_goods”这样实际的表名称。为什么不直接拼接字符串“ecs_”和“goods”?因为在安装时,是可以自己配置表前缀的,所以这里不能固定写死用字符串拼接。

 

Yii的体系里,数据库的表是跟model对应的,表名称是在Model类的tableName()函数中返回的,为了处理表前缀的问题,在这个函数中返回表名称时,可以采用类似如下代码:

 

public static function tableName()
 {
     
return '`user`';
 
}

 

可以看到,返回用户表名称不是直接返回user,而是`user`,在实际从数据库提取数据时,将%替换为表前缀。

 

如何配置应用的表前缀呢?在main.phpdb参数中进行配置:

return [
     
'components' => [
         
'db' => [
             
'class' => 'yii\db\Connection',
             
'dsn' => 'mysql:host=localhost;dbname=liduoo',
             
'username' => 'root',
             
'password' => 'mysql',
             
'charset' => 'utf8',
             
'tablePrefix' => 'abc_',
         
],
     
],
 
];







本文转自 tywali 51CTO博客,原文链接:http://blog.51cto.com/lancelot/1871258,如需转载请自行联系原作者
相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5月前
|
JavaScript
el-table 使用了 修改行使用了v-model双向绑定 如何记录修改前的数据
el-table 使用了 修改行使用了v-model双向绑定 如何记录修改前的数据
183 2
|
10月前
|
移动开发 JavaScript 前端开发
Mr_HJ / form-generator项目文档学习与记录(续1)
Mr_HJ / form-generator项目文档学习与记录(续1)
61 2
|
10月前
|
JSON JavaScript 数据格式
Mr_HJ / form-generator项目文档学习与记录(续)
Mr_HJ / form-generator项目文档学习与记录(续)
52 0
|
10月前
|
移动开发 前端开发
Mr_HJ / form-generator项目文档学习与记录(续2)
Mr_HJ / form-generator项目文档学习与记录(续2)
40 0
|
10月前
|
JSON JavaScript 前端开发
Mr_HJ / form-generator项目文档学习与记录
Mr_HJ / form-generator项目文档学习与记录
188 0
|
10月前
|
数据库
GreenDao 3.0 中insert insertOrReplace save 区别
GreenDao 3.0 中insert insertOrReplace save 区别
MacBook中如何删除.DS_Store文件?
MacBook中如何删除.DS_Store文件?
|
机器学习/深度学习 Go
【词汇】ab-前缀、al-后缀、norm-词根
【词汇】ab-前缀、al-后缀、norm-词根
518 0