如何在yii中显示多星评级


How to display multiple star rating in yii?

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

当我在数据库中输入一个评论时,它是ok的,但是当我添加第二个评论时,两个评论星就混合在一起了。

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

你正在使用小部件的'name'属性,所以javascript会感到困惑,因为将有超过1个输入具有相同的名称,你要做的是使用'model'和'attribute'选项为小部件

 $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中的变量,from:

$review = Reviews::model()->findAll();
foreach($review as $review)

$reviews = Reviews::model()->findAll();
foreach($reviews as $review)