db_config

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Alex8552
Сообщения: 36
Зарегистрирован: 2014.10.07, 15:13

db_config

Сообщение Alex8552 »

Добрый день.

Можно ли программно править db_config? Если да,то в какую сторону копать подскажите плиз
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: db_config

Сообщение samdark »

Что такое db_config?
Alex8552
Сообщения: 36
Зарегистрирован: 2014.10.07, 15:13

Re: db_config

Сообщение Alex8552 »

Можно ли как-то динамически подставлять в common/config/main-local.php конфиги баз.
Ситуация, под каждого юзера на сайте создается отдельная база, название этой базы хранится в табличке, в которой есть соответствие база-юзер.
Например
для юзера 1 будет такой конфиг:

Код: Выделить всё

$config['components']['db_1'] = [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=db_1',
    'username' => 'user',
    'password' => 'pass',
    'charset' => 'utf8',
];
а для юзера 2 вот такой:

Код: Выделить всё

$config['components']['db_2'] = [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=db_2',
    'username' => 'user',
    'password' => 'pass',
    'charset' => 'utf8',
];
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: db_config

Сообщение samdark »

А не лучше ли в этом случае создавать Connection в коде?
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: db_config

Сообщение anton44eg »

имхо лучше на лету создавать объект yii\db\Connection
Alex8552
Сообщения: 36
Зарегистрирован: 2014.10.07, 15:13

Re: db_config

Сообщение Alex8552 »

Пример бы не помешал...не до конца представляю что вы имеете в виду...
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: db_config

Сообщение anton44eg »

Код: Выделить всё

$connection = new \yii\db\Connection($params); 
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: db_config

Сообщение samdark »

Код: Выделить всё

$connection = new \yii\db\Connection(
    'dsn' => 'mysql:host=localhost;dbname=db_2',
    'username' => 'user',
    'password' => 'pass',
    'charset' => 'utf8',
);
$connection->open();
$command = $connection->createCommand('SELECT * FROM post');
$posts = $command->queryAll();
 
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: db_config

Сообщение samdark »

Ну или если соединение используется несколько раз, его лучше не открывать каждый раз, а хранить.
Alex8552
Сообщения: 36
Зарегистрирован: 2014.10.07, 15:13

Re: db_config

Сообщение Alex8552 »

спасибо!
Ответить