Yii CArrayDataProvider能否用作exportablegridbehavior的数据源?

Yii CArrayDataProvider能否用作exportablegridbehavior的数据源?,yii,yii-extensions,cactivedataprovider,Yii,Yii Extensions,Cactivedataprovider,ExportableGridBehavior-tinyurl.com/expgrid 这在通常的数据提供者中非常有效。但当与CArrayDataProvider一起使用时,会导致问题,并在CSV中提供空白数据。是否可以将此扩展与CArrayDataProvider一起使用。控制器中的语法应该是什么样的 型号代码:SearchProfitCurrent方法 $rawData=Yii::app()->db->createCommand($selectStatment)->query

ExportableGridBehavior-tinyurl.com/expgrid

这在通常的数据提供者中非常有效。但当与CArrayDataProvider一起使用时,会导致问题,并在CSV中提供空白数据。是否可以将此扩展与CArrayDataProvider一起使用。控制器中的语法应该是什么样的

型号代码:SearchProfitCurrent方法

$rawData=Yii::app()->db->createCommand($selectStatment)->queryAll();

    return new CArrayDataProvider($rawData, array(
        'id'=>'id',
        'sort'=>array(
            'attributes'=>array(
                'Currency',
                'profitMarginCurrency'
            ),
        ),
        'pagination'=>array(
            'pageSize'=>50,
        ),
    ));
控制器代码:

$search_dataProvider = $model->searchProfitCurrency();
$this->exportCSV($search_dataProvider, 
  array(
        $search_dataProvider['Currency'],
        $search_dataProvider['profitMarginCurrency'],

  ));

我也遇到了同样的问题,实际上我不知道作者发布的代码示例和你粘贴在这里的代码示例是如何工作的

我用一种简单的方式修改了这个类,现在它对我很有用。 所以

类内ExportableGridBehavior

  if ($data instanceof CActiveDataProvider) {
    $this->csvRowHeaders($fileHandle, $attributes, $data->model);
    $this->csvRowModels($fileHandle, new CDataProviderIterator($data, 150), $attributes);

  } else if ($data instanceof CArrayDataProvider) {   // @luca
    fputcsv($fileHandle, $attributes, $this->csvDelimiter, $this->csvEnclosure);
    foreach ($data->rawData as $i=>$r) {
      $row = array();
      foreach ($attributes as $attr) {
        $row[] = $data->rawData[$i][$attr];
      }
      fputcsv($fileHandle, $row, $this->csvDelimiter, $this->csvEnclosure);
    }


  } else if (is_array($data) && current($data) instanceof CModel) {

内部控制器

  $dataProvider = new CArrayDataProvider($filteredData, array(
    'keyField' => 'idvr',
    'id'=>'idvr',
    'sort'=>array(          'attributes'=>array('numfor','codfis','driscos','nominativo','codtrib','ravved','impdeb'),
      'defaultOrder'=>array('driscos'=>'ASC')
    ),
    'pagination' => array( 'pageSize'=>50, ),
    'keyField' => 'codfis',
  ));


if ($this->isExportRequest())
  $this->exportCSV($dataProvider, array_keys($dataProvider->rawData[0]));

问题?什么问题?也张贴这些问题