首页 > 解决方案 > 一对多关系发生的雄辩次数

问题描述

我正在努力雄辩地做一些非常具体的事情。

我有两张表,“餐食”和“产品”,以及一个将每种产品与一顿餐食相关联的数据透视表 meal_product。

一件重要的事情是产品具有能量,以千卡为单位。

假设用户可以吃包含相同产品的不同餐点,我想获得用户消耗最多的 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();

这可行,但我不知道如何调整它,以便计算用户消费产品的次数,然后将其乘以它的能量值以获得总数。

标签: phplaraveleloquentmany-to-manyrelationship

解决方案


推荐阅读