Yii2 динамическое соединение со второй базой данных

У меня простой select в моем коде просмотра. Он представляет собой список городов, и на моем сервере есть несколько баз данных, которые отвечают за каждый город. У меня есть код модели, и он занимает city_id, От этого зависит, я хочу подключиться к базе данных и искать необходимые данные в ней. Я добавил вторую базу данных в мои компоненты, такие как:

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

и два файла, которые возвращают соединение с базой данных.

Файл 1:

'class' => 'yii\db\Connection',
'dsn' => $dsn,
'username' => $username,
'password' => $password,
'charset' => 'utf8',

Файл 2:

'class' => 'yii\db\Connection',
'dsn' => $dsn,
'username' => $username,
'password' => $password,
'charset' => 'utf8',

Я хочу как-то динамически изменить имя своей базы данных сразу после выбора пользователя.

0

Решение

Вы можете сделать звонок для dbconnection

 $actual_dsn = 'your_dns_actual_value'
$yourConnection = new \yii\db\Connection([
'dsn' => $actual_dsn,
'username' => $username,
'password' => $password,
]);
$yourConnection->open();

в конце концов закройте предыдущее открытое соединение

Вы можете сделать это в вашем db_login.php в зависимости от потребностей приложения

1

Другие решения

Может быть :

if (choice =='a') {
'db' => require(__DIR__ . '/db.php')
}
else {
'db2' => require(__DIR__ . '/db_login.php')
}
0

По вопросам рекламы [email protected]