【问题标题】:Laravel validate current date against database date using carbonLaravel 使用碳验证当前日期与数据库日期
【发布时间】:2018-01-07 13:13:01
【问题描述】:

我正在创建一个计划函数,在该函数中我根据当前日期验证表中的日期字段,如果日期已过,那么我想用 '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 个字段。 功能有什么问题?

提前致谢

【问题讨论】:

    标签: laravel php-carbon


    【解决方案1】:

    你很可能想要这样的东西

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

    而不是

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

    现在您每次$fecha_vigencia->isPast() 都会有效地更新整个表格。

    【讨论】:

    • 你 100% 正确,我没有注意到我正在更新整个表格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    相关资源
    最近更新 更多