更新多个时间戳文件Laravel ORM Eloquent

时间:2016-03-27 19:39:45

标签: php laravel orm eloquent laravel-5.2

简单来说,我有字段(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。我该如何解决?

1 个答案:

答案 0 :(得分:1)

我认为问题在于您的SQL语法 - 您不能减去这样的句点 - 您必须使用DATE_SUB function或INTERVAL关键字(对于MySQL)

更新:您还可以将该列中的时间戳存储为简单数字。在那种情况下,算术运算将起作用。