CGridView用于自定义CActiveDataProvider选择

时间:2014-01-30 16:26:39

标签: php yii cgridview cactivedataprovider

所以问题是,我有一个视图,它将呈现一个包含计数值的CGridView。我必须制作一个自定义CDbCriteria,以便我可以选择正确的信息。现在我无法在CGridView中显示它。

这是构建CActiveDataProvider的控制器操作:

public function actionListProducts(){
    $criteria=new CDbCriteria;
    $criteria->select = 'rp_product as product, count(rp_id) as cnt';
    $criteria->group = 'product';

    $dataProvider=new CActiveDataProvider('report', array( 'criteria'=>$criteria,
    ));

    $this->render('listProducts',array(
        'dataProvider'=>$dataProvider,
    ));
}

我试图在这个CGridView中显示它:

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'reports-grid',
'dataProvider'=>$dataProvider,
'columns'=>array(
        'product',
        'cnt'
    ),
));

我知道数据已正确获取,因为我的CGridView具有正确的行数...我想在“列”描述中写什么?

谢谢

1 个答案:

答案 0 :(得分:3)

如果要使用别名productcnt(var AS别名),则必须在模型报告中创建它的公共属性。

示例:

Model extends CActiveRecord {
....
public $product;
public $cnt;
...
}