Создал в контроллере 2 действия:
public function actionVoteUp($id)
{
$post = Post::findOne($id);
if (!$post->ratingUsers) {
$post->updateCounters(['rating' => 1]);
$model = new RatingUser();
$model->user_id = Yii::$app->user->id;
$model->post_id = $id;
$model->save();
} else {
Yii::$app->session->setFlash('error', 'Вы уже голосовали за эту новость');
}
return $this->renderAjax('vote', ['post' => $post]);
}
public function actionVoteDown($id)
{
$post = Post::findOne($id);D
if (!$post->ratingUsers) {
$post->updateCounters(['rating' => -1]);
$model = new RatingUser();
$model->user_id = Yii::$app->user->id;
$model->post_id = $id;
$model->save();
} else {
Yii::$app->session->setFlash('error', 'Вы уже голосовали за эту новость');
}
return $this->renderAjax('vote', ['post' => $post]);
}
Вьюшка: <?php \yii\widgets\Pjax::begin(['enablePushState' => false]); ?>
<?= $post->rating ?>
<?= Yii::$app->session->getFlash('error')?>
<?php \yii\widgets\Pjax::end(); ?>