如何在Yii2中组合数据提供者?

时间:2015-11-18 10:49:47

标签: php mysql gridview yii2 dataprovider

我有一张表中有售票的历史记录,每张票都有一些属性。

要显示历史记录,我使用两个具有相同列的表:

  1. 列出所有门票的总和按月分组($ dataProviderAll)
  2. 当月所有门票的列表($ dataProviderCurrent)
  3. 我使用sqlDataProviders来显示带有故障单的数据库中的数据,这没问题。

    如何合并$ dataProviderAll和$ dataProviderCurrent以在一个GridView中显示联合数据?

    我需要在kartik的ExportMenu中加载联合$ dataProvider并将导出设为excel。

    我认为使用UNION的sqlDataProvider中的子查询,但它看起来不太好,

1 个答案:

答案 0 :(得分:2)

use yii\data\ArrayDataProvider;

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

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