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
我正在创建一个计划函数,其中我根据当前日期验证 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()
.