Задать вопрос

Yii2, как в моделе указать использование другой DB?

нужно для определенной модели использовать другую базу данных.

в комон в файле main.php я добавил новое соединение с базой данных
'components' => [
    'db2' => [
        'class' => '\yii\db\Connection',
        // ...
    ],
]


Теперь вопрос как моделе сказать, чтобы она использовала соединение с db2

Мне посоветовали ка-то так:
class Post extends ActiveRecord
{
    public static function getDb()
    {
        return $this->db2;
    }
}


Но проблема в том, что Yii2 ругает $this->db2, что его нет.
Пробовал еще пару вариантов с self и через Yii::$app

Но так и не получилось договориться с моделью. Подскажите пожалуйста, как объяснить моделе, чтобы она работала с db2 ?
  • Вопрос задан
  • 5916 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
metamorph
@metamorph
return \Yii::$app->get('db2');
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
sanchezzzhak
@sanchezzzhak
Ля ля ля...
По идеи вам правильно подсказали, переопределить метод для AR модели.

Попробуйте return Yii::$app->getComponent('db2');
или так return Yii::$app->db2;
Ответ написан
nepster-web
@nepster-web Автор вопроса
сейчас обновлю Yii2 и попробую.

Я как раз вот так пробовал Yii::$app->db2, не сработало.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы