Пример #1
0
	public function starRating($object_pk, $ratingAjax) {

      $object_pk = (int)$object_pk;


		$model = Article::model()->findByPk($object_pk);

      if($model){
          $rating = ArticleRating::model()->findByAttributes(array(
            'object'=>$object_pk
          ));
          // если не было рейтинга - делаем
          if(!$rating)
          {
            $rating = new ArticleRating;
            $rating->object = $object_pk;
            $rating->vote_count = 1;
            $rating->vote_sum = $ratingAjax;
            $rating->vote_average = round($rating->vote_sum / $rating->vote_count,2);
            $rating->save(false);

            $model->rating_id = $rating->id;
            $model->save(false,array('rating_id'));                    
          } else {
            $rating->vote_count = $rating->vote_count + 1;
            $rating->vote_sum = $rating->vote_sum + $ratingAjax;
            $rating->vote_average = round($rating->vote_sum / $rating->vote_count,2);
            if(!$rating->save()){
               // VarDumper::dump($rating->errors); die(); // Ctrl + X  Delete line
            }
          }
          
    }
    return true;
    }