Laravel: Доктор имеет много назначений и назначений имеет один рейтинг, как получить рейтинг доктора - PullRequest
0 голосов
/ 30 января 2020

У меня есть связь доктора с таблицей встреч, у доктора может быть много встреч. Связи таблицы встреч с рейтингами, одна встреча ( только завершено ) может иметь рейтинг. Я хочу средний рейтинг врачей всех назначений. Например, у врача есть 10 назначений, 5 из которых завершены, и они имеют рейтинг, т.е. 3,4,1,3,4. Я хочу показать рейтинг доктора как пример результата 3 средний показатель.

Как я могу это сделать?

1 Ответ

0 голосов
/ 30 января 2020

Вы можете попробовать что-то подобное. Я не знаю названий атрибутов, которые вы используете, поэтому я использовал свои.

$sum = 0;
$count = 0; 

foreach($doctor->appointments as $appointment){
    if($appointment->isComplete){
        $count++;
        $sum += $appointment->rating->value;
    }
}

$avg = $sum / $count;

L oop по назначению врача, для каждого посещения проверяйте, завершено ли оно, получите значение его рейтинга.

Вы можете создать функцию в модели Доктора с именем rating, имеющую этот лог c.

ИЛИ

Вы можете использовать соотношение hasManyThrough. hasManyThrough - Laravel

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...