1

私は 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 つのレビューを入力すると問題ありませんが、2 つ目のレビューを追加すると、両方のレビューの星が混在します。

この場合、どうすればよいですか?

4

1 に答える 1

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)
于 2013-01-16T18:11:34.027 に答える