2019独角兽企业重金招聘Python工程师标准>>>

1、多数据库配置

  'db' => require(__DIR__ . '/db.php'),'gdb' => require(__DIR__ . '/gdb.php'),

db或gdb的配置文件如下:

if (YII_ENV == 'dev') {return ['class' => 'yii\db\Connection','dsn' => 'mysql:host=192.168.1.42;dbname=gather','username' => 'lizhi','password' => '123456','charset' => 'utf8',];
} else {return ['class' => 'yii\db\Connection','dsn' => 'mysql:host=localhost;dbname=gather','username' => 'gather','password' => 'gather(!2','charset' => 'utf8',];
}

2、 调用相应的数据库

/*** @return \yii\db\Connection the database connection used by this AR class.*/public static function getDb(){return Yii::$app->get('gdb');}

当然您也可以用gii进行创建,选择连接池处会出现你多数据库配置的相应db名称。如gdb、db

3、主从配置

return ['class' => 'yii\db\Connection',// 配置从服务器'slaveConfig' => ['username' => 'root','password' => '','charset' => 'utf8','tablePrefix' => '','attributes' => [PDO::ATTR_TIMEOUT => 10,],],// 配置从服务器组'slaves' => [['dsn' => 'mysql:host=localhost;dbname=chunyun']],// 配置主服务器'masterConfig' => ['username' => 'root','password' => '','charset' => 'utf8','attributes' => [// use a smaller connection timeoutPDO::ATTR_TIMEOUT => 10,],],// 配置主服务器组'masters' => [['dsn' => 'mysql:host=localhost;dbname=gather'],]
];

以上是yii2对数据库配置的应用。

4、model的方法应用
当然yii2还有一些CDB的类用法,createCommend写sql这种我不是很推荐了,model自身会去绑定很多的功能让大家去使用以及理解。
接下来介绍一些model的方法。
(1)beforeValidate方法
save操作之前一般会执行validate验证方法,顾名思义:validate前做的操作,记住操作后必须返回true。
可以在此操作中将一些字段赋上默认值之类的,这样无需每次添加的时候都赋值。
因为validate的方法有以下验证

 if (!$this->beforeValidate()) {return false;
}

相对应的还有afterValidate 这个方法我感觉有点鸡肋

(2)beforeSave方法
这个一般属于validate后,save前的方法,一般用来做条件用的,如save前必须什么数据操作成功,

才能做另外一个save操作这种。当然是用场景多多,看你去使用吧。afterSave就不解释了。

(3)查询方面的建议
至于model的数据查询我就不介绍了,这方面教程肯定挺多的。还有很多朋友会去纠结联表的事情,

yii2的model里支持联表,但是从性能考虑,尽量避免联表。

如何避免联表:

如查询文章列表,其中一项为分类名称,通过list取出文章分类的列表,将相对应的分类列表中分类名称,

这样的操作比联表效率要高。

如果非联表不可的可以写sql,便于以后的维护,构造的sql有有点也有缺点,自己去衡量取舍。

G
M
T

Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu

Text-to-speech function is limited to 200 characters
Options : History : Feedback : Donate Close

转载于:https://my.oschina.net/botkenni/blog/1805371

yii2的model数据库配置以及应用(主从数据库配置)相关推荐

  1. windows配置mysql8.0主从数据库,主从数据同步。

    本地配置两个mysql8.0数据库用作主从数据库,同一个服务器安装多个mysql服务,只要端口不一样. 1.下载安装包 mysql下载地址:https://dev.mysql.com/download ...

  2. 【Linux内容】Linux系统中配置MySQL搭建主从数据库

    1. 搭建主从数据库前期工作 确认主从数据库服务已经启动并且可以正常登陆.已经开放MySQL数据库访问端口号 2. 配置MySQL主库 3. 配置MySQL从库

  3. thinkphp mysql 主从数据库_ThinkPHP连接数据库及主从数据库的设置教程

    本文较为详细的讲述了ThinkPHP连接数据库及主从数据库的设置方法,在ThinkPHP项目开发中非常实用.具体实现方法如下: 一.项目根目录上建立config.php 代码如下所示: if(!def ...

  4. Java解决主从数据库延迟问题_MySQL主从数据库同步延迟问题解决

    最近在做MySQL主从数据库同步测试,发现了一些问题,其中主从同步延迟问题是其中之一,下面内容是从网上找到的一些讲解,记录下来以便自己学习: MySQL的主从同步是一个很成熟的架构,优点为:①在从服务 ...

  5. MySQL主从配置 主从数据库不同步的原因

    MySQL主从配置中,主从数据库不同步的原因可能有以下几种: 主库的binlog格式或版本与从库不匹配. 主库和从库之间网络问题导致数据传输中断. 主库和从库之间的时间不同步. 主从复制用户权限设置不 ...

  6. mysql主从数据库含义_(转)Mysql数据库主从心得整理

    管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验所写,整理了一下,分享给各位同行,希望对 ...

  7. k8s主从自动切换mysql_K8S与Ceph RBD集成-多主与主从数据库示例

    参考文章: 感谢以上作者提供的技术参考,这里我加以整理,分别实现了多主数据库集群和主从数据库结合Ceph RDB的实现方式.以下配置只为测试使用,不能做为生产配置. K8S中存储的分类 在K8S的持久 ...

  8. springboot 实现主从数据库动态切换,可实现读写分离

    使用 AbstractRoutingDataSource 实现功能,代码完整贴出,直接放心食用. 从AbstractRoutingDataSource源码角度简单分析为什么可以实现数据库动态切换. 前 ...

  9. mysql数据库在政务项目中的运用_数据库区域论文,关于MySQL数据库在域名系统中的应用实现相关参考文献资料-免费论文范文...

    导读:本文是一篇关于数据库区域论文范文,可作为相关选题参考,和写作参考文献. 宋国柱1 杨怀卿1 赵圣隆2 (1山西农业大学信息网络中心太谷030801 2山西建筑职业技术学院太原030006) 摘 ...

最新文章

  1. Linux rm过滤后的目录6,Linux的部分命令
  2. 遇见BUG(5)如何找到VHDL的包呢?
  3. ActivityRecord、TaskRecord、ActivityStack相互关系以及Activity启动模式
  4. 【David Silver强化学习公开课之一】强化学习入门
  5. 解决IE下textarea不识别maxlength属性的问题
  6. 低配置系统安装 linux,Linux系统的安装和配置
  7. 断路器操作机构分合闸线圈电流特征曲线特点
  8. 【python】pycharm启动 一直index,无法运行
  9. python的print输出_python中的print()输出
  10. 京东私有云建设:挑战与应对之道
  11. gitea无法连接mysql_Git push ERROR: Repository not found fatal:无法连接远程数据库
  12. ueditor php提交表单,ThinkPHP使用Ueditor的方法详解
  13. php 显示探针_PHP探针
  14. 今年新型城镇化新看点:加快户籍改革 建设新型智慧城市
  15. 后氧传感器正常数据_老司机,教你看,氧传感器数据流分析!赶紧搜藏吧!
  16. android系统裁剪之APP精简
  17. 例如筋斗云的效果,但不通过offset定位的flag标记
  18. 记录--WebSocket 原理
  19. Spearman 相关性分析法,以及python的完整代码应用
  20. ip地址的作用及分类

热门文章

  1. 腾讯 AI 医学进展破解“秃头”难题,登 Nature 子刊!
  2. 重返全球第三,小米做对了什么?
  3. 离职后竟半夜偷溜回办公室写代码?一个为自由软件而战斗的程序员
  4. 腾讯会议用户突破1亿,发布企业版最高支持2000人同时参会
  5. 浏览器对象模型:window对象2
  6. 面向对象的三个基本特征 和 五种设计原则
  7. Sqli-labs less 50
  8. ORACLE 中极易混淆的几个 NAME 的分析和总结
  9. AS3与lua之间的交互
  10. 关于SQL查询效率,100w数据,查询只要1秒