1

expired(boolean)我在一个名为and的表中有两列expire_date(timestamp)。我正在运行一个调度程序来检查优惠券是否过期,everyMinute()同时使用 foreach 更新expired列值,我发现它用今天的日期更改了 expired_date 列值。我发现这很奇怪,或者可能是我搞砸了通过引用传递的东西..这是代码

$schedule->call(function () {
            CoursePromotion::where('expired',0)
                ->whereDate('expire_date','<',Carbon::today())
                ->update(['expired' => 1]);
      })->everyMinute();

这是结果,

更新前的数据库

在此处输入图像描述

运行php artisan schedule:run命令后的数据库

在此处输入图像描述

谁能告诉我为什么 expired_date 已更新为今天的日期?

4

1 回答 1

2

检查你的数据库表(有这个' expired_date'列),不确定但同一列的属性有问题。如果您on update CURRENT_TIMESTAMP为 ' expired_date' 列找到类似 ' ' 的属性,则将其删除并检查。

在此处输入图像描述

此外on update CURRENT_TIMESTAMP,在对特定记录执行更新操作时,此 ' ' 属性将使用当前日期更新日期。

于 2016-12-15T08:21:15.783 回答