我正在雄辩地做一些非常具体的事情。
我有两个表,分别是“饭食”和“产品”,还有一个枢轴分析表,“饭食_产品”将每个产品与一顿饭相关联。
重要的一点是,产品具有以千卡为单位的能量。
鉴于用户可以吃的不同的食物可以包含一种相同的产品,我想获得该用户消耗最多的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();
这可行,但是我不知道如何适应它,以便它计算用户消费产品的次数,然后将其乘以其能量值以获得总和。