Laravel事务处理

前端之家收集整理的这篇文章主要介绍了Laravel事务处理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

自动模式

自动模式直接在闭包函数里写业务逻辑,如果执行出去laravel会抛出异常,会自动进行回滚

DB::transaction(function () {
    DB::table('test')->where('id',6)->update(['age' => 27]);
    DB::table('users')->delete(4); //如果这里删除一个不存在的用户返回0,也会正常提交,不明白为什么?
});

手动模式

DB::beginTransaction(); //手动开启事务
try {
    $r1 = DB::table('test')->where('id',6)->update(['age' => date('His')]);
    // DB::table('users')->delete(6);
    $r2 = DB::table('users')->where('id',15)->update(['name' => 'ABC']);
    DB::commit();
} catch (\Exception $e) {
    echo $e->getMessage();
    DB::rollBack();
}

猜你在找的程序笔记相关文章