如何更新同一天创建的记录或在新的一天创建新记录? (Laravel 5.2)
How do I update a record create in the same day or create a new record if its a new day? (Laravel 5.2)
所以在 laravel 中,如果我有今天创建的记录,我可以在更新记录时调用更新或保存。厉害了。
但如果是明天呢?我怎么说,嘿,还是昨天吗?不?好的,让我们创建一个新记录。例如:
id: 1,
post_id: 1
viewed_times: 3
create_at: today
所以我可以更新它,因为它是今天。但是现在让我们假设明天(12:00 AM 之后)。
现在不更新记录了,因为是明天,我想创建一条新记录说:
id: 2,
post_id: 1
viewed_times: 2
create_at: tomorrow
现在您可以看到我们有一个具有相同 post ID 的新记录,并且新的一天(明天)的观看次数设置为 2。
最好的表达方式是什么:是今天还是明天?如果是今天,则更新现有记录,如果是明天,则创建一条新记录。
注意:如果我可以使用碳,那将是惊人的,可以使它变得更简单。
你会检查你的日期是否大于今天。
$date_to_compare = Carbon\Carbon::tomorrow();
if (Carbon\Carbon::now()->gt(Carbon::parse($date_to_compare)) {
// will always fail because date to compare is tomorrow
}
您可以使用
$today = Carbon\Carbon::today();
然后像这样获取您创建的记录的明天:
$record->create_at->tomorrow();
然后
if($today->eq($record->create_at->tomorrow())){
//it's tomorrow insert new record
}else{
//it's the same day just update the record :)
}
所以在 laravel 中,如果我有今天创建的记录,我可以在更新记录时调用更新或保存。厉害了。
但如果是明天呢?我怎么说,嘿,还是昨天吗?不?好的,让我们创建一个新记录。例如:
id: 1,
post_id: 1
viewed_times: 3
create_at: today
所以我可以更新它,因为它是今天。但是现在让我们假设明天(12:00 AM 之后)。
现在不更新记录了,因为是明天,我想创建一条新记录说:
id: 2,
post_id: 1
viewed_times: 2
create_at: tomorrow
现在您可以看到我们有一个具有相同 post ID 的新记录,并且新的一天(明天)的观看次数设置为 2。
最好的表达方式是什么:是今天还是明天?如果是今天,则更新现有记录,如果是明天,则创建一条新记录。
注意:如果我可以使用碳,那将是惊人的,可以使它变得更简单。
你会检查你的日期是否大于今天。
$date_to_compare = Carbon\Carbon::tomorrow();
if (Carbon\Carbon::now()->gt(Carbon::parse($date_to_compare)) {
// will always fail because date to compare is tomorrow
}
您可以使用
$today = Carbon\Carbon::today();
然后像这样获取您创建的记录的明天:
$record->create_at->tomorrow();
然后
if($today->eq($record->create_at->tomorrow())){
//it's tomorrow insert new record
}else{
//it's the same day just update the record :)
}