Yii 2 —— Model表前缀

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介:

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,如需转载请自行联系原作者
相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
11月前
|
网络协议 前端开发 JavaScript
Django第3步_url路由映射与TEMPLATES添加检索路径
Django第3步_url路由映射与TEMPLATES添加检索路径
82 0
|
测试技术 Python
Django Template层之自定义tag
Django Template层之自定义tag
49 0
|
索引
ES修改mapping中的字段名称
ES修改mapping中的字段名称
688 0
|
消息中间件 NoSQL 算法
Django 如何获取 Model 字段列表?
在平时的开发过程中,避免不了需要获取 Model 中的字段列表。
207 0
SAP Spartacus b2b table,通过listService的table type字段来控制要加载的数据类型
SAP Spartacus b2b table,通过listService的table type字段来控制要加载的数据类型
80 0
SAP Spartacus b2b table,通过listService的table type字段来控制要加载的数据类型
|
JSON 数据格式 API