分享 / 5 / 5 / 创建于 9年前
Eloquent 怎么实现事务
我一般使用DB::transaction, 可以参考Stack Overflow 问题
DB::transaction
@krisroofe 快3年前的问题,今天还有人回复
@wujingke 大佬能不能说说自己现在的理解呢
参考社区文档-数据库事务那里最下面的Tip说明
在这里说明一下:
DB
DB::transaction()
DB::beginTransaction()
DB::commit()
DB::rollback()
** 示例 **
DB::transaction(function () { Model::find(1)->update([ $key1 => $value1, $key2 => $value2, $key3 => $value3, ]); }); DB::beginTransaction(); try { Model::find(1)->update([ $key1 => $value1, $key2 => $value2, $key3 => $value3, ]); DB::commit(); } catch (Exception $e) { DB::rollback(); throw $e; //将exception继续抛出 生产环境可以修改为报错后的操作 }
上述两种实现方式等价
我要举报该,理由是:
我一般使用
DB::transaction
, 可以参考Stack Overflow 问题@krisroofe 快3年前的问题,今天还有人回复
@wujingke 大佬能不能说说自己现在的理解呢
参考社区文档-数据库事务那里最下面的Tip说明
在这里说明一下:
DB
Facade提供的事务是支持Eloquent 的事务的DB
Facade的DB::transaction()
或是DB::beginTransaction()
+DB::commit()
+DB::rollback()
即可** 示例 **
上述两种实现方式等价