如何在活動記錄中設置數據庫配置?如何設置YII2多個DB可配置?
這個文件: app \ models \ multi_db \ Devices;
<?php
namespace app\models\multi_db;
use yii\db\ActiveRecord;
class Devices extends ActiveRecord
{
private static $dbConn;
public function __construct($config=[])
{
switch ($config['server']) {
case '2':
self::$dbConn = \Yii::$app->dbtwo;
break;
case '3':
self::$dbConn = \Yii::$app->dbthree;
break;
default:
self::$dbConn = \Yii::$app->dbone;
break;
}
}
public static function getDb()
{
return self::$dbConn;
}
public function findDevice($id)
{
return self::findOne($id);
}
}
這是我的代碼來獲取設備:
$model = new Devices(['server' => 3]);
$device = $model->findDevice(1);
但這產生錯誤:
Undefined index: server
我想構造中findDevice
方法沒有設置?
我該如何解決這個問題?
你試過'var_dump'-ING'$ config',並註釋掉開關代碼?也許你正在代碼中的其他地方創建另一個實例?順便說一句,你可能還需要在某個時候調用父構造函數。 –
我不明白,你能給我一個例子來傾銷$配置嗎? 如果我註釋掉了switch-case,靜態getDb()沒有設置,併爲Yii2中的模式生成錯誤。 謝謝。 –
'var_dump($ config);'然後你可以做一些類似'switch(1)'的操作來避免未設置的問題,而不會觸發錯誤。 –