Ответы пользователя по тегу Рейтинги
  • Как организоваться систему рейтинга постов +1 -1?

    @hobu4ok91 Автор вопроса
    Создал в контроллере 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(); ?>
    Ответ написан
    5 комментариев