@maaestr0

Как правильно сделать (laravel)?

Здравствуйте. В БД есть таблицы продукты и отзывы. В таблице отзывы находится строка оценка (от 1 до 5).Для каждого продукта нужно вывести его рейтинг. Я делаю следующим образом.
В модели "Продукты"
public function reviews()
    {
        return $this->hasMany(CourseReviews::class);
    }

 public function getAvgRating(){
        return round($this->reviews->pluck('rating')->avg());
    }


В шаблоне
<span class="star ">{{$course->getAvgRating()}}</span>

Но в одной из статей я прочитал что это плохой тон когда из шаблона обращаешься в БД.Подскажите, как лучше сделать. Буду благодарен за любой совет.
  • Вопрос задан
  • 185 просмотров
Пригласить эксперта
Ответы на вопрос 2
JhaoDa
@JhaoDa
LaravelRUS Team
Документация — твой лучший друг!
Ответ написан
Комментировать
Fragster
@Fragster
помогло? отметь решением!
Учитывая, что добавление отзыва с оценкой намного реже показа, логично сделать доп колонку в таблице продуктов или в отдельной связанной 1 к 1 табличке с частоизменяемыми данными, в которой пересчитывать это значение при добавлении отзыва.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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