Как объединить провайдера данных в Yii2?

У меня есть одна таблица с историей проданных билетов, каждый билет представляет собой ряд с некоторыми свойствами.

Для отображения истории я использую две таблицы с одинаковыми столбцами:

  1. Сумма списка всех заявок, сгруппированных по месяцам ($ dataProviderAll)
  2. список всех билетов за текущий месяц ($ dataProviderCurrent)

Я использую sqlDataProviders для отображения данных из базы данных с билетами, и это не проблема.

Как объединить $ dataProviderAll и $ dataProviderCurrent, чтобы показать объединенные данные в одном GridView?

Мне нужно было это загрузить объединенный $ dataProvider в kartik’s ExportMenu и сделать экспорт, чтобы преуспеть.

Я думаю о подзапрос в sqlDataProvider с UNION, но это не похоже, кажется, хорошо,

1

Решение

use yii\data\ArrayDataProvider;

$data = array_merge($dataProviderAll->getModels(), $dataProviderCurrent->getModels());

$dataProvider = new ArrayDataProvider([
'allModels' => $data
]);
2

Другие решения

Других решений пока нет …