这是我的product_price表:请注意,product_id 1在同一天更新了多次。这是我目前的查询:
$product = ProductPriceModel::where(['product_id' => $request->product_id])->distinct()->latest()->get()->groupBy(function ($date) {
return Carbon::parse($date->created_at)->format('Y-m-d');
});
这给了我这个结果:
"data": {
"productDetails": {
"2018-09-17": [
{
"min_price": 0,
"max_price": 1150,
"price_diff": "425"
},
{
"min_price": 100,
"max_price": 200,
"price_diff": "-945"
}
],
"2018-09-10": [
{
"min_price": 1070,
"max_price": 1120,
"price_diff": "-30"
},
{
"min_price": 1100,
"max_price": 1150,
"price_diff": "15"
},
{
"min_price": 1080,
"max_price": 1140,
"price_diff": "0"
}
]
}
}
我期望它返回的只是每个日期的一条记录。在上面的查询中需要做哪些更改才能获得每个日期的一条记录?
如果你想只获得一条记录,你需要使用first()
代替get()
,请尝试一下
$product = ProductPriceModel::where(['product_id' => $request->product_id])->distinct()->latest()->first()->groupBy(function ($date) {
return Carbon::parse($date->created_at)->format('Y-m-d');
});