一、多數據庫配置php
'db' => require(__DIR__ . '/db.php'), 'gdb' => require(__DIR__ . '/gdb.php'),
db或gdb的配置文件以下:mysql
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', ]; }
二、 調用相應的數據庫web
/** * @return \yii\db\Connection the database connection used by this AR class. */ public static function getDb() { return Yii::$app->get('gdb'); }
固然您也能夠用gii進行建立,選擇鏈接池處會出現你多數據庫配置的相應db名稱。如gdb、dbsql
三、主從配置數據庫
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 timeout PDO::ATTR_TIMEOUT => 10, ], ], // 配置主服務器組 'masters' => [ ['dsn' => 'mysql:host=localhost;dbname=gather'], ] ];
以上是yii2對數據庫配置的應用。服務器
四、model的方法應用
固然yii2還有一些CDB的類用法,createCommend寫sql這種我不是很推薦了,model自身會去綁定不少的功能讓你們去使用以及理解。
接下來介紹一些model的方法。
(1)beforeValidate方法
save操做以前通常會執行validate驗證方法,顧名思義:validate前作的操做,記住操做後必須返回true。
能夠在此操做中將一些字段賦上默認值之類的,這樣無需每次添加的時候都賦值。
由於validate的方法有如下驗證yii2
if (!$this->beforeValidate()) { return false; }
相對應的還有afterValidate 這個方法我感受有點雞肋app
(2)beforeSave方法
這個通常屬於validate後,save前的方法,通常用來作條件用的,如save前必須什麼數據操做成功,yii
才能作另一個save操做這種。固然是用場景多多,看你去使用吧。afterSave就不解釋了。性能
(3)查詢方面的建議
至於model的數據查詢我就不介紹了,這方面教程確定挺多的。還有不少朋友會去糾結聯表的事情,
yii2的model裏支持聯表,可是從性能考慮,儘可能避免聯表。
如何避免聯表:
如查詢文章列表,其中一項爲分類名稱,經過list取出文章分類的列表,將相對應的分類列表中分類名稱,
這樣的操做比聯表效率要高。
若是非聯表不可的能夠寫sql,便於之後的維護,構造的sql有有點也有缺點,本身去衡量取捨。
Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu |
|
AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu |
|
|
|
|
|