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;
...
}