DB 门面提供两种方式支持数据库事务
一种是调用 transaction 方法然后传入闭包作为参数,我们将需要进行事务操作的逻辑放到闭包函数内,如果事务闭包中抛出异常,事务将会自动回滚。如果闭包执行成功,事务将会自动提交。使用 transaction 方法时不需要担心手动回滚或提交:
DB::transaction(function () {
DB::table('users')->update(['id' => 1]);
DB::table('posts')->delete();
});
另一种是 beginTransaction、 rollBack 和 commit 三个方法一起使用从而构建一个完整的事务操作:
DB::beginTransaction(); //事务开始
if($somethingIsFailed){
DB::rollback(); //事务失败 操作回滚
return false;
}
DB::commit(); //事务成功 提交操作
猜你喜欢:
暂无回复。