如何在活动记录中设置数据库配置?如何设置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)'的操作来避免未设置的问题,而不会触发错误。 –