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表前缀相关推荐

  1. TP5.1查询用Db('不含表前缀')/Db::name('不含表前缀')/Db::table('含表前缀')返回数组;model()返回对象

    TP5.1查询用Db(('不含表前缀')/Db::name('不含表前缀')/Db::table('含表前缀')返回数组:model()返回对象 all():可直接传数组查询 select():传数组 ...

  2. ci框架mysql多条件_CI框架同时连接不同的数据库(或不同表前缀)

    1.配置数据库 $active_group = 'default'; $query_builder = TRUE; $db['default'] = array( 'dsn' => '', 'h ...

  3. php验证规则表单,PHP Yii框架之表单验证规则大全

    Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用.Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程. 废话不多说了,直接给大家贴代码了. class ContactForm ...

  4. ABP框架源码学习之修改默认数据库表前缀或表名称

    ABP框架源码学习之修改默认数据库表前缀或表名称 1,源码 1 namespace Abp.Zero.EntityFramework 2 { 3 /// <summary> 4 /// E ...

  5. PHP Yii框架之表单验证规则大全

    Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用.Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程,本文给大家介绍php yii框架之表单验证规则大全,感兴趣的朋友一起学习吧 ...

  6. Vue之for列表渲染、methods事件和model表单绑定

    2.4 for列表渲染 文档:https://cn.vuejs.org/v2/guide/list.html v-for指令可以绑定数组的数据来渲染一个项目列表 v-for指令需要使用item in ...

  7. laravel mysql 锁表_Laravel 数据库加密及数据库表前缀配置方法

    报错问题:DecryptException in Encrypter.php line 148: The MAC is invalid. 如何运行 php artisan key:generate 这 ...

  8. php redbean update,redbeanphp和表前缀

    我在我的php项目中使用Redbeanphp(http://redbeanphp.com/).我想为我的表使用表前缀. 自版本3.0以来,Redbeanphp不支持表前缀.但我想扩展Redbeanph ...

  9. oracle添加表的索引,oracle批量添加指定表前缀的索引SQL语句

    oracle批量添加指定表前缀的索引SQL语句 需要输入用户名,表空间,索引个数,表名前缀,过滤的表名后缀 ##需要输入用户名,表空间,索引个数,表名前缀,过滤的表名后缀 declare --用户名 ...

最新文章

  1. android 填满手机磁盘空间方法
  2. CUDA系列学习(三)GPU设计与结构QA coding练习
  3. 127. Word Ladder 单词接龙
  4. 15个Java多线程面试题
  5. 牛客 String II
  6. xcode6以后, 使用.pch
  7. Typora、Markdown 字体样式
  8. 通过淘宝司法拍卖购买房子,需要注意些什么?
  9. 小宁百度了php一句话用菜刀,web学习01day攻防世界web简单题
  10. Java-(二)微信小程序授权获取用户信息和手机号码
  11. 前端实现图片压缩上传功能
  12. [WTL/ATL]_[中级]_[自定义TrackBar]
  13. MATLAB中simulink的SIL测试
  14. yarn : 无法加载文件 xxxxxxxxx,因为在此系统上禁止运行脚本。
  15. B树、B+树、B-树特点整合
  16. android tv nga,扎心tv,给大家转一个我在nga看到的故事
  17. 计算机网络要点(第二章)
  18. 立体成像系统行业分析-产能、产量、销量、销售额、价格及未来趋势
  19. 预算及费用控制方案:以“我”为中心,构建企业信息化财务管控体系
  20. 怎样将cad布局导出来_cad布局出图教程(请问 CAD布局里面的图 怎么复制出来)...

热门文章

  1. 11Grac+ASM+linux2.6.18 processes (100) exceeded
  2. Android TextView 初步学习
  3. c语言基础学习08_关于内存管理的复习
  4. 根据 JS 自动定义页面缩放比(根据分辨率进行适配)
  5. Broadcast Receiver广播接收器
  6. [redis设计与实现][5]基本数据结构——整数集合
  7. 小知识~LocalDB在IIS上如何成功配置
  8. 一个很好的Qt教程个人主页
  9. Tomcat启动分析server.xml
  10. [Vue.js进阶]从源码角度剖析vue-router(三)