所以,由于BootProgressColumn,我终于在GridView中有了一个进度条。但是,我有一个评级系统,我想在进度条中显示百分比。我可以在columns
数组中设置它,但这将适用于所有行。
$rawData = Item::model()->findAllByAttributes(array('special_id' => $specialId));
$dataProvider = new CArrayDataProvider($rawData, array());
GridView:
'dataProvider' => $dataProvider,
'columns' => array(
array(
'class' => 'application.components.BootProgressColumn',
'name' => 'Rating',
'animated' => true,
'striped' => true,
'percent' => '44',
),
)
现在,如何获取$data->id
模型中每个Rating
匹配行的所有列的总和?
$countRatings = count(Rating::model()->findAllByAttributes(array('item_id' => $data->id));
但总结怎么办?如何按计数划分总和?这一切都已经完成,如何在每一栏中获得它?或者最好自己创建一个表?
答案 0 :(得分:1)
如果我理解你的问题,你想获得每件商品的平均价格,这就是你能做的:
项目模型中的创建关系avgRating:
public function relations()
{
return array(
'avgRating' => array(self::STAT, 'Item', 'item_id', 'group' => 'item_id', 'select' => 'ROUND(AVG(rate),1)'),
);
}
然后您可以为每个项目调用此项以获得表格中的评分:
'dataProvider' => $dataProvider,
'columns' => array(
array(
'class' => 'application.components.BootProgressColumn',
'name' => 'Rating',
'animated' => true,
'striped' => true,
'percent' => '$data->avgRating',
),
)