Красноречивое количество раз встречается отношение один ко многим - PullRequest
0 голосов
/ 06 мая 2019

Я изо всех сил пытаюсь с помощью eloquent сделать что-то совершенно конкретное.

У меня есть две таблицы: «еда» и «продукты» и сводная таблица еды_продукта, которая связывает каждый продукт с одной едой.

Одна важная вещь заключается в том, что продукт имеет энергию, в ккал.

Учитывая, что у пользователя могут быть разные блюда, которые могут содержать один и тот же продукт, я хотел бы получить общую энергию 5 продуктовчто пользователь потребляет больше всего.

Я также должен был выбрать 5 продуктов с самым высоким энергетическим значением, потребляемым одним конкретным пользователем, и вот что я сделал:

$highProducts = Product::whereHas('meals', function($q) use($user_id) {
            $q->where('user_id', $user_id);
        })->whereNotNull('energetic_value')
        ->orderBy('energetic_value', 'DESC')
        ->take(5)
        ->get();

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

...