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 ответ

Решение

Если вы хотите использовать псевдонимы product а также cnt (var AS alias), вы должны сделать его публичным свойством в модельном отчете.

Пример:

Model extends CActiveRecord {
....
public $product;
public $cnt;
...
}
Другие вопросы по тегам