如何在yii中显示多个星级?

时间:2013-01-16 11:00:10

标签: php yii yii-components

我正在研究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/>";
        }
    ?>

当我在数据库中输入一个评论时,就可以了,但是当我添加第二个评论时,两个评论明星都会混在一起。

在这种情况下我该怎么做?

1 个答案:

答案 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)
相关问题