我正在研究yii中的CStar评级小部件。我做了如下:
$review = Reviews::model()->findAll();
foreach($review as $review)
{
$rate=$review['rating'];
$this->widget('CStarRating',array(
'name'=>'rating',
'minRating'=>1,
'maxRating'=>5,
'starCount'=>5,
'value'=>$rate,
'readOnly'=>true,
));
echo "<br/>";
echo $review['title'];
echo "<br/>";
echo "<font color='brown'>".ucfirst($review['name'])."</font><br/>";
echo $review['body'];
echo "<hr/><br/>";
}
?>
当我在数据库中输入一个评论时,就可以了,但是当我添加第二个评论时,两个评论明星都会混在一起。
在这种情况下我该怎么做?
答案 0 :(得分:1)
您正在使用窗口小部件的“名称”属性,因此javascript会变得混乱,因为将有多个具有相同名称的输入,您需要做的是使用“模型”和“属性”选项对于小部件
$this->widget('CStarRating',array(
'attribute'=>'rating', //change to the attribute in your model
'model'=>$review,
'minRating'=>1,
'maxRating'=>5,
'starCount'=>5,
'value'=>$rate,
'readOnly'=>true,
));
您还需要重命名foreach中的变量,来自:
$review = Reviews::model()->findAll();
foreach($review as $review)
到
$reviews = Reviews::model()->findAll();
foreach($reviews as $review)