我正在制作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)