如何使用eloquent进行批量更新?

时间:2016-05-13 10:40:50

标签: php laravel laravel-5 eloquent laravel-5.2

我有一个模型Post,想要批量更新它的记录。我知道这个方法:

Post::where('id', '>', '10')->update(...)

但我需要增加记录的times_seen属性。换句话说,对于匹配times_seen条件的每条记录,我需要将where(...)属性的值增加1。例如:

Post::where('id', '>', '10')->update(['times_seen', ?]) // '?' = 'times_seen + 1'

我该怎么做?

1 个答案:

答案 0 :(得分:3)

尝试查询构建器的 increment()方法:

Post::where('id', '>', 10)->increment('times_seen');

如果需要将其递增多次,则可以将精确值作为第二个参数传递:

Post::where('id', '>', 10)->increment('times_seen', 5);