Привет народ кто подскажет как можно объединить запрос с двух разных БД в один перед скармливанием его ActiveDataProvider.
Суть такова есть 2 одинаковые модели 2 разных БД? надо объединить данные с двух разных БД
class HomeStoreAddresses extends BaseActiveRecord
{
public static function getDb()
{
return Yii::$app->home_db;
}
}
class ClimaStoreAddresses extends BaseActiveRecord
{
public static function getDb()
{
return Yii::$app->clima_db;
}
}
Про такой вариант знаю - но работает не так как надо - запрос идет к одной БД
$query1 = HomeStoreAddresses::find()->where([
'type' => $type,
'region_id' => $this->region_id,
]);
$query2 = ClimaStoreAddresses::find()->where([
'type' => $type,
'region_id' => $this->region_id,
]);
$query1->union($query2);
$dataProvider = new ActiveDataProvider([
'query' => $query1,
'pagination' => [
'pageSize' => 10,
],
]);
Такой вариант не красив и неправилен
$query1 = HomeStoreAddresses::find()->where([
'type' => $type,
'region_id' => $this->region_id,
])->all();
$query2 = ClimaStoreAddresses::find()->where([
'type' => $type,
'region_id' => $this->region_id,
])->all();
$result = array_merge($query1, $query2);
$dataProvider = new ArrayDataProvider([
'key' =>'id',
'allModels' => $result,
'pagination' => [
'pageSize' => 10,
],
]);