手动使用事务
如果你想要手动开启事务从而对回滚和提交有更好的控制,可以使用 DB 门面的 beginTransaction 方法:
DB::beginTransaction();
你可以通过 rollBack 方法回滚事务:
DB::rollBack();
最后,你可以通过 commit 方法提交事务:
DB::commit();
想要在一个数据库事务中运行一连串操作,可以使用 DB 门面的 transaction 方法,使用 transaction 方法时不需要手动回滚或提交:如果事务闭包中抛出异常,事务将会自动回滚;如果闭包执行成功,事务将会自动提交:
DB::transaction(function () {
DB::table(‘users’)->update([‘votes’ => 1]);
DB::table(‘posts’)->delete();
});