如何在同一天更新创建的记录,或者如果新的一天创建新记录? (Laravel 5.2)

时间:2016-08-08 17:44:25

标签: php laravel php-carbon

所以在laravel中,如果我有一个今天创建的记录,我可以在更新记录时调用更新或保存。真棒。

但如果明天呢?怎么说呢,嘿,它还在昨天吗?没有?好的,我们创建一个新的记录。例如:

id: 1,
post_id: 1
viewed_times: 3
create_at: today

所以我可以更新它,因为它是今天。但现在让我们假设明天(凌晨12点之后)。

现在不是更新记录,因为明天,我想创建一条新记录:

id: 2,
post_id: 1
viewed_times: 2
create_at: tomorrow

现在您可以看到我们有一个具有相同帖子ID的新记录,并且新日(明天)的视图设置为2.

最好的说法是什么:是今天还是明天?如果它今天然后更新现有记录,如果明天,则创建一个新记录。

注意:如果我能使用碳会让它变得更加简单。

2 个答案:

答案 0 :(得分:1)

您可以检查您所拥有的日期是否超过今天。

$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
}

答案 1 :(得分:1)

您可以使用

$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 :)
}