Есть две базы, есть два компонента db и db2
Делаю поиск с подключением with(), в метод one(db2) вставляю db2.
Основная модель возвращается нормально, т.е. данные из второй базы, а вот то, что должно было получиться, используя with(), пусто. Видимо при with() идет запрос из дефолтной базы, в данном случае первой, и ничего не находит(так там нет данных искомых моделей).
Есть способ чтоб модели из with использовали ранее указанное подключение db2 без указания его же в самой моделе? Или это просто баг?
multiple db & with()
- Stepan Selyuk
- Сообщения: 198
- Зарегистрирован: 2010.02.03, 05:51
- Откуда: Cyprus, Limassol
- Контактная информация:
Re: multiple db & with()
Судя по коду, если в методах ActiveQuery не передать $db, то будет использован Yii::$app->getDb() при вызове createCommand().
Сначала невидимое, затем видимое. И так у всех программистов :)
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: multiple db & with()
Пишите тикет на гитхаб.
Re: multiple db & with()
Краткое содержание по тикету, для тех, кто не знает английский:
- это не баг, а фича, так как на лету могут подключаться модели из разных баз, даже NoSql
- - либо использовать метод getDb() в каждой модели
- либо динамически менять Yii::$app->db