Yii2中Model表前缀的示例分析-创新互联

这篇文章主要介绍了Yii 2中Model表前缀的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

我们提供的服务有:网站设计、成都网站建设、微信公众号开发、网站优化、网站认证、巴宜ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的巴宜网站制作公司

1.1 Model表前缀

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

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

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

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

public static functiontableName()
 {
    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表前缀的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:Yii2中Model表前缀的示例分析-创新互联
当前网址:http://hbruida.cn/article/didchh.html