Ок а причем тут тогда ActiveDataProvider?
Если бы все так было просто...
ошибка возникает когда происходит вызов
после
Код: Выделить всё
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
Если мы просто попытаемся запустить сквель то ниче не произайдет так как таблицы имеют одну структуру
Код: Выделить всё
$query2 = new Query();
$query = new Query();
$query -> select("*") -> from ("tbl_abonent_history");
$query2 -> select("*") -> from ("tbl_agreement_history");
$query -> union($query2);
$query -> all();
Такой код работать будет
короткий трейс реальной ошибки
Database Exception – yii\db\Exception
SQLSTATE[21000]: Cardinality violation: 1222 The used SELECT statements have a different number of columns
The SQL being executed was: SELECT COUNT(*) FROM `tbl_abonent_history` UNION (
SELECT * FROM `tbl_agreement_history`
)
array (
0 => '21000',
1 => 1222,
2 => 'The used SELECT statements have a different number of columns',
)
↵
Caused by: PDOException
SQLSTATE[21000]: Cardinality violation: 1222 The used SELECT statements have a different number of columns
in /develop/app/vendor/yiisoft/yii2/db/Command.php at line 397
1. in /develop/app/vendor/yiisoft/yii2/db/Command.php at line 424
419420421422423424425426427428429 if ($e instanceof Exception) {
throw $e;
} else {
$message = $e->getMessage() . "\nThe SQL being executed was: $rawSql";
$errorInfo = $e instanceof \PDOException ? $e->errorInfo : null;
throw new Exception($message, $errorInfo, (int)$e->getCode(), $e);
}
}
}
/**
2. in /develop/app/vendor/yiisoft/yii2/db/Command.php – yii\db\Command::queryInternal() at line 338
3. in /develop/app/vendor/yiisoft/yii2/db/Query.php – yii\db\Command::queryScalar() at line 285
4. in /develop/app/vendor/yiisoft/yii2/db/Query.php – yii\db\Query::queryScalar() at line 193
5. in /develop/app/vendor/yiisoft/yii2/data/ActiveDataProvider.php – yii\db\Query::count() at line 161
6. in /develop/app/vendor/yiisoft/yii2/data/BaseDataProvider.php – yii\data\ActiveDataProvider::prepareTotalCount() at line 145
7. in /develop/app/vendor/yiisoft/yii2/data/ActiveDataProvider.php – yii\data\BaseDataProvider::getTotalCount() at line 104
8. in /develop/app/vendor/yiisoft/yii2/data/BaseDataProvider.php – yii\data\ActiveDataProvider::prepareModels() at line 79
9. in /develop/app/vendor/yiisoft/yii2/data/BaseDataProvider.php – yii\data\BaseDataProvider::prepare() at line 92
10. in /develop/app/modules/agreement/views/history/journal.php – yii\data\BaseDataProvider::getModels() at line 19
1415161718192021222324
GridViewAsset::register($this);
echo JournalHeader::widget(['header' => $this->Message -> journal]);
$models = $dataProvider->getModels();