Laravel 8 自增与自减
查询构造器还为给定字段的递增或递减提供了便捷的方式。此方法提供了一个比手动编写 update
语句更具表达力且更精练的接口。
这两种方法都至少接收一个参数:需要修改的列。可选的第二个参数用于控制列递增或递减的量:
DB::table('users')->increment('votes');
DB::table('users')->increment('votes', 5);
DB::table('users')->decrement('votes');
DB::table('users')->decrement('votes', 5);
你也可以在操作过程中指定要更新的其他字段:
DB::table('users')->increment('votes', 1, ['name' => 'John']);
注意:当你使用模型中的
increment
和decrement
方法时,会触发 updating 和 updated 模型事件。而在构造器中直接使用increment
和decrement
,不会触发模型事件。