Laravel 使用 carbon 根据数据库日期验证当前日期

Laravel validate current date against database date using carbon

我正在创建一个计划函数,其中我根据当前日期验证 table 中的日期字段,如果日期已过,那么我想用 '3224407' 更新第二列。字段类型 fecha_vigencia 是日期。

我的日程表函数是:

protected function schedule(Schedule $schedule)
{
    $schedule->call(function(){

     foreach(Equipo::all()  as $equipo){

          $fecha_vigencia= Carbon::parse($equipo->fecha_vigencia);

          if($fecha_vigencia->isPast())
            {
              DB::table('equipo')->update(['telefono_contacto' => '3224407']);
            }
          }

}

现在我的数据库记录在 运行 schedule:run 之前: image

fecha_vigencia列中的大部分日期字段都是将来的“2017-08-15”, 如上图所示,当我使用 $fecha_vigencia->isPast() 与当前日期->“2017-07-31”进行比较时,电话列上的所有字段都会更新。只应使用日期 2017-07-10 更新 1 个字段。 该功能有什么问题?

提前致谢

您很可能想要这样的东西

$equipo->telefono_contacto = '3224407';
$equipo->save();

而不是

DB::table('equipo')->update(['telefono_contacto' => '3224407']);

现在,您每次 $fecha_vigencia->isPast().

都有效地更新了整个 table