【发布时间】:2020-01-29 13:54:26
【问题描述】:
我有一个Product,它有多个Variants。
我想选择所有产品并根据第一个底层变体子代的价格对其进行排序。
产品 A
- 变体 A1(价格:3 美元)
- 变体 A2(价格:3 美元)
产品 B
- 变体 B1(价格:2 美元)
- 变体 B2(价格:2 美元)
产品 C
- 变体 C1(价格:4 美元)
- 变体 C2(价格:4 美元)
在这种情况下,如果我想以asc 的价格订购,我希望得到以下结果订购:
- 产品 B
- 产品A
- 产品C
我当前(不工作)的查询:
Product::with(['variants' => function ($q) {
$q->orderBy('price', 'desc');
}])->orderBy('variants.price', 'desc')->get();
【问题讨论】:
-
特定产品的变体价格是否始终相同?
-
我意识到这是一个有点奇怪的场景,但是是的,它们可能会有所不同,但是在这种情况下它是无关紧要的——这就是为什么能够过滤第一个找到的东西会很棒。
-
最高价格而不是第一次找到怎么样?