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