【问题标题】:Update Only Time in Laravel Eloquent Model Field DateTimeLaravel Eloquent 模型字段 DateTime 中仅更新时间
【发布时间】:2017-09-19 20:08:16
【问题描述】:

我想通过仅更改时间而不是日期来更新数据库中的日期时间字段,这在 laravel 中使用模型是否可行?

我的研究促使我找到了一个使用 Query 方法而不是使用 Models 的解决方案。

例如: Event = ["start" => "22-22-2003 12:14:00"] 我只需要添加几个小时,而无需编辑日期。

【问题讨论】:

  • 您能详细说明一下吗?您只想更改一个模型(行)还是一组模型(行)?举例说明您想对日期时间值做什么。
  • @peterm,是的,刚刚添加了一个例子

标签: laravel eloquent


【解决方案1】:

怎么样:

$event = Event::find($id);

$event->start = $event->start->addHours(2);
$event->save();

这假定您的 start 属性被强制转换为 Carbon 实例,这通常通过将其添加到模型的 $dates 属性来完成。

class Event extends Model
{
    protected $dates = [
        'start',
    ];
}

【讨论】:

  • 未定义的方法addHours
  • 这意味着你的属性没有被转换为 Carbon 实例。您可以这样做(请参阅更新的答案)或自己显式实例化它。
  • 这部分是正确的,但我不知道要添加多少小时,我只需将时间更新为给定的另一个时间
  • 我发现了如何做到这一点(拆分等),我选择这个作为正确答案。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-30
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
  • 1970-01-01
  • 2019-06-29
  • 2019-09-15
相关资源
最近更新 更多