ActiveRecord запрос на выборку из БД отличной от текущей
Добавлено: 2017.11.27, 12:54
Господа!
Есть обычный класс ActiveRecord, пусть будет SomeModel.
Есть подключение к локальной базе данных, описанном в Yii::$app->db.
Есть подключение к удалённой базе данных, описанной в Yii::$app->remoteDb.
Делаю следующую выборку одной записи:
Получаю ошибку:
Насколько я понял из исходников, в модели нужно реализовать метод с нужным подключением, т.е.:
Связано это с получением схемы таблицы для данной модели, и которой в локальной базе данных нет (если при выборке добавить asArray(), то всё работает как надо).
Вопрос в следующем, для чего в методах one/all имеется возможность задавать другое подключение к БД, но схема берётся из той что описана в модели? Есть ли возможность задавать подключение только в одном месте, либо в методах one/all, либо через контейнер?
Есть обычный класс ActiveRecord, пусть будет SomeModel.
Есть подключение к локальной базе данных, описанном в Yii::$app->db.
Есть подключение к удалённой базе данных, описанной в Yii::$app->remoteDb.
Делаю следующую выборку одной записи:
Код: Выделить всё
SomeModel::find()->where(['id' => 1])->one(Yii::$app->remoteDb);
Код: Выделить всё
Exception 'yii\base\InvalidConfigException' with message 'The table does not exist: {{%some_table}}'
Код: Выделить всё
class SomeModel extends ActiveRecord {
public static function getDb()
{
return Yii::$app->get('remoteDb');
}
}
Вопрос в следующем, для чего в методах one/all имеется возможность задавать другое подключение к БД, но схема берётся из той что описана в модели? Есть ли возможность задавать подключение только в одном месте, либо в методах one/all, либо через контейнер?