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; }