[英]How to get last updated value of the same record for each day, week, month and year in Laravel eloquent?
This is my product_price table: 这是我的product_price表: Notice that product_id 1 is updated multiple times on the same day. 请注意,product_id 1在同一天多次更新。 This is my current query: 这是我当前的查询:
$product = ProductPriceModel::where(['product_id' => $request->product_id])->distinct()->latest()->get()->groupBy(function ($date) {
return Carbon::parse($date->created_at)->format('Y-m-d');
});
which give me this result: 这给我这个结果:
"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"
}
]
}
}
What I expect it to return is only one record for each date. 我希望它返回的每个日期只有一个记录。 What changes needs to be done in above query to get exactly one record for each date? 为了在每个日期中获得一条准确的记录,在上面的查询中需要进行哪些更改?
If you want to get only one record you need to use first()
in place of get()
please give a try 如果您只想获取一条记录,则需要使用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');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.