Задать вопрос
@TeslaFeo

Почему рейтинг увеличиваться будет не на 0,01, а на 0,02?

public function actionAddRating(){
        //обычно User::
        $person = Persone::findOne(\Yii::$app->user->identity->id);
        if($person->updateCounters(['rating' => 0.01])){
            $person->updateCounters(['rating' => 0.01]);
        }else{
            return $person->rating;
        }
                //возвращаем true что сохранили апдейт
        return true;
    }


как правильно написать
нужно вернуть сразу результат метода, который апдейтит
а если updateCounter не сработает
  • Вопрос задан
  • 76 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
irishmann
@irishmann
Научись пользоваться дебаггером
if($person->updateCounters(['rating' => 0.01])){
            $person->updateCounters(['rating' => 0.01]);
        }

Проблема тут. Вы сначала увеличиваете рейтинг на 0.01, если увеличение прошло успешно, еще раз увеличиваете на 0.01

Я бы сделал так
if(!$person->updateCounters(['rating' => 0.01]))
    return $person->rating;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы