更新多个时间戳字段 Laravel 或 Eloquent
Update multiple timestamp fileds Laravel ORM Eloquent
为了简单起见,我有字段 (timestamp) started_at
、(int) duration
并且我有 ID 为 [1, 2, 3]
的行。当我删除第一个对象时,我想更新所有下一行中的 started_at
字段(在我的示例中是第 2 行和第 3 行)。
我试过这样做:
Model::where('id', '>', $myObject->id)
->update([
'started_at' => DB::raw('started_at - ' . $myObject->duration),
]);
但是这个构造将我的字段设置为 0000-00-00 00:00:00
。我该如何解决?
我认为问题出在您的 SQL 语法上 - 您不能那样减去句点 - 您必须使用 DATE_SUB function 或 INTERVAL 关键字(对于 MySQL)
更新:您还可以将该列中的时间戳存储为一个简单的数字。在这种情况下,算术运算将起作用。
为了简单起见,我有字段 (timestamp) started_at
、(int) duration
并且我有 ID 为 [1, 2, 3]
的行。当我删除第一个对象时,我想更新所有下一行中的 started_at
字段(在我的示例中是第 2 行和第 3 行)。
我试过这样做:
Model::where('id', '>', $myObject->id)
->update([
'started_at' => DB::raw('started_at - ' . $myObject->duration),
]);
但是这个构造将我的字段设置为 0000-00-00 00:00:00
。我该如何解决?
我认为问题出在您的 SQL 语法上 - 您不能那样减去句点 - 您必须使用 DATE_SUB function 或 INTERVAL 关键字(对于 MySQL)
更新:您还可以将该列中的时间戳存储为一个简单的数字。在这种情况下,算术运算将起作用。