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

Php 如何在yii中显示多星级?,php,yii,yii-components,Php,Yii,Yii Components,我正在yii中开发CStar评级小部件。我的工作如下: $review = Reviews::model()->findAll(); foreach($review as $review) { $rate=$review['rating']; $this->widget('CStarRating',array( 'name'=>'rating',

我正在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/>";
        }
    ?>
$review=Reviews::model()->findAll();
foreach($review作为$review)
{
$rate=$review['rating'];
$this->widget('cstarting',数组(
“名称”=>“评级”,
“minRating”=>1,
“最大额定值”=>5,
“starCount”=>5,
“值”=>$rate,
“只读”=>true,
));
回声“
”; echo$review['title']; 回声“
”; echo“.ucfirst($review['name'])”
; echo$review['body']; 回声“

”; } ?>
当我在数据库中输入一个评论时,这是可以的,但是当我添加第二个评论时,两个评论星会混合在一起


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

您正在使用小部件的“name”属性,因此javascript会变得混乱,因为将有多个输入具有相同的名称,您需要做的是为小部件使用“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中的变量,从:

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


您正在使用小部件的“name”属性,因此javascript会变得混乱,因为将有多个输入具有相同的名称,您需要做的是为小部件使用“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中的变量,从:

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


您是否尝试过重命名您的变量
$reviews=reviews::model()->findAll();foreach($reviews作为$review).
?您是否尝试过重命名您的变量
$reviews=reviews::model()->findAll();foreach($review作为$review).
?有人能告诉我,我正在做同样的事情,但我无法显示星星,我只得到了单选按钮吗?我怎样才能得到星星呢?谢谢大家,我已经制作了如下属性变量
$rate=$review['rating'];$this->widget('cstarting',array('name'=>'rating'.$i,'minRating'=>1,'maxrrating'=>5,'starCount'=>5,'value'=>$rate,'readOnly'=>true,)嘿,有人能告诉我,我正在做同样的事情,但我无法向星星显示我只得到了单选按钮吗?我怎样才能得到星星呢?谢谢大家,我已经制作了如下属性变量
$rate=$review['rating'];$this->widget('cstarting',array('name'=>'rating'.$i,'minRating'=>1,'maxrrating'=>5,'starCount'=>5,'value'=>$rate,'readOnly'=>true,)