Модель Laravel - Рассчитать средние оценки - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть таблица «Заказы», ​​где хранятся рейтинговые оценки, и внутри этой таблицы я имею отношение к местам.

Мне нужно получить рейтинг заказов по каждому месту и рассчитать средний рейтинг.Мне нужно это на модели, чтобы я мог взять его для дальнейшего использования.

Это схема:

[ЗАКАЗЫ]

- order_id =10

- place_id = 2

- рейтинг = 3

[МЕСТ]

- place_id = 2

Итак, когда я вызываю: $ place-> avgRating (), он должен вернуть 4.3, например.Вытягивание информации о заказе работает.Вот код:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Place extends Model
{
    public function user(){
      return $this->belongsTo('App\User');
    }

    public function orders(){
      return $this->hasMany('App\Order');
    }



}

1 Ответ

1 голос
/ 26 сентября 2019

Вы взглянули на методы сбора в документации .

Итак, добавьте метод в вашу модель Place:

public function avgRating()
{
    return $this->orders->avg('rating');
}

Вызов $project->avgRating(); должен вернуть то, что вы ожидаете.

...