我在 Laravel 中有一对多关系:
- 类型
- 产品 - type_id、价格
如何获得 $types 按产品排序的最低价格?
示例:
- 类型_1 具有:product_x - 10 欧元,product_y - 15 欧元
- 类型_2 具有:产品_a - 20 欧元,产品_b - 100 欧元
- type_3 具有:product_e - 12 欧元、product_f - 200 欧元
因此类型应按顺序排列:type_1、type_3、type_2。
我尝试过这个:
$types = $types->whereHas('products', function($q) use($order_by_price){
$q->orderBy('price', $order_by_price);
});
但没有成功。
我也尝试过 join(),但它以某种方式破坏了集合。可能是因为类型和产品表中的列名相同。
最佳答案
就这么做
$type->products()->orderBy('price')->get();
或
Product::orderBy('price')->get();
如果您想要更详细的答案,请分享更多代码(模型、 Controller 等),以便我知道如何使用不同的模型/解决方案
关于php - Laravel 集合 orderBy 关系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55225157/