使用CArrayDataProvider进行Yii CGrid分页和排序不起作用

Dan*_*ola 6 php yii yii-cmodel zii-widgets

我在我的模型中构建了一个自定义函数并返回原始数据:

function(){
...
$connection=Yii::app()->db;
$command=$connection->createCommand($sql);
$rows=$command->queryAll();
return $rows;
}
Run Code Online (Sandbox Code Playgroud)

$ campModel = $ model-> function ..

然后我在CArrayDataProvider中使用这些行:

$dataProvider=new CArrayDataProvider($campModel);
Run Code Online (Sandbox Code Playgroud)

最后我试图使用CGrid查看:

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'bo-campaigns-grid',
'dataProvider'=>$campModel,...
Run Code Online (Sandbox Code Playgroud)

我猜这与CGrid的分页方式有关...但我输了谢谢你的帮助:)

suc*_*nic 9

创建一个新的CSort和CPagination对象并将它们分配给您的数据提供者,因为CArrayDataProvider没有定义它们.以下是CSort创建的示例:

$dataProvider=new CArrayDataProvider($campModel);
$sort = new CSort();
$sort->attributes = array(
            'fecha'=>array(
                'asc'=>'dateA DESC',
                'desc'=>'dateA ASC',
            ),
);
$sort->route = 'myController/myMethod';
$dataProvider->sort = $sort;
$dataProvider->sort->defaultOrder='dateA DESC';
Run Code Online (Sandbox Code Playgroud)