温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Yii 2中Model表前缀的示例分析

发布时间:2021-11-23 15:12:43 来源:亿速云 阅读:168 作者:小新 栏目:开发技术

这篇文章主要介绍了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.php的db参数中进行配置:

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

感谢你能够认真阅读完这篇文章,希望小编分享的“Yii 2中Model表前缀的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI