码迷,mamicode.com
首页 > 其他好文 > 详细

Yii 2 —— Model表前缀

时间:2016-11-10 07:50:49      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:yii2

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_‘,
        
],
    
],
 
];


本文出自 “rainman” 博客,请务必保留此出处http://lancelot.blog.51cto.com/393579/1871258

Yii 2 —— Model表前缀

标签:yii2

原文地址:http://lancelot.blog.51cto.com/393579/1871258

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!