@f1nef1ne

Yii2 как формировать запросы связанных таблиц разных баз данных на разных серверах?

Здравствуйте. Суть вопроса такова: есть 2 базы данных, расположены они на разных серверах, подключаются по разным юзерам\паролям. Для GridView необходимо сделать сортировку столбца, который выбирается из удаленной базы данных. Выборка через отдельный запрос на удаленную бд по каждому элементу работает нормально. Но для сортировки, я так понимаю, необходимо делать join и вот тут-то вылетает ошибка. Подскажите, возможно ли сделать сортировку в запросе с 2 базами данных, расположенных на разных серверах?

Ошибка: "SELECT command denied to user 'user'@'localhost' for table 'game'"

// Код, который выбирает игры и связные данные
        $query = Game::find()
            ->with(['relations', 'user', 'categories', 'characters'])
            ->joinWith('core as core');

        $config = [
            'query' => $query,
            'sort' => $this->getSort(),
            'pagination' => ['pageSize' => 40]
        ];

        $dataProvider = new ActiveDataProvider($config);

// метод для сортировки данных
// ошибка в колонке complaints
private function getSort()
    {
        return new Sort([
            'attributes' => [
                'id',
                'name',
                'complaints' => [
                    'asc' => ['core.complaints' => SORT_ASC],
                    'desc' => ['core.complaints' => SORT_DESC],
                ]
            ],
        ]);
    }

Получается я не могу сделать join двух БД из-за разных подключений
'components' => [
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'подключение',
            'username' => 'юзер',
            'password' => 'пароль',
            'charset' => 'utf8',
        ],
        'db_core' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'подключение',
            'username' => 'юзер',
            'password' => 'пароль',
            'charset' => 'utf8',
        ],
  • Вопрос задан
  • 369 просмотров
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
не получится join делать между двумя базами, как вариант вижу такое извращение:
сделали запрос к 1 базе взяли данные, сформировали во второй базе клон, далее уже в пределах одной базы работаем.
Либо же реализовывать фильтрацию уже в php, где есть два массива данных.
Ответ написан
Ваш ответ на вопрос

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

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