Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Laravel. Система рангов

Как реализовать?
Например: если у человека 100 очков то ему дается определенное звание
и т.д - 200 очков - другое звание

Срочно надо, помогите пожалуйста

По дате
По рейтингу
Аватар пользователя
Мастер

сделать поле хранение очков points

сделать акцессор переводящий очки в звания
самое простое так
public function getRankAttribute($value)
{
if($this->points >= 100 && $this->points < 200){
return 'Ученик';
} else if() ....
}

посложнее связь с моделью Rank в которой звания хранить

Аватар пользователя
Мыслитель

Это лучше сделать при событии когда очки пользователя меняются. И сразу записывать итог в базу.
Таблица рангов(ranks): rank_name, min_score_value
Таблица пользователя (users): current_score_value, rank_id (привожу не все поля, а необходимые)

В итоге по событию:
1) Получаем из ДБ ранг(и): SELECT id FROM ranks WHERE min_score_value <= current_score_value ORDER BY id
2) Update users SET rang_id =ranks .id

Потом при вызове пользователя Join Left рангов и получим сразу звание

Аватар пользователя
Оракул

через if

Аватар пользователя
Оракул

с помощью алгебры и логики