[Backend-base] Database Transactions

tags: Laravel6

前言

在确保资料库操作没有问题后,再正式提交(commit)这次操作。若操作到一半出错时,可将前半部的操作取消(rollback)。
如此可以保证同一批次操作的完整性。

* 程式码如下:

use Illuminate\Support\Facades\DB;DB::beginTransaction();                try {                                   } catch (\Throwable $th) {                    DB::rollBack();                    return response()->json(['result'=>$th],403);                }                DB::commit();
範例
use Illuminate\Support\Facades\DB;DB::beginTransaction();                try {                    $reward->update([                        'hunters'=>$hunter_reward,                        'bonus'=>$hunter_reward->fee,                        'chosen'=>1]);                        $user=User::where('id',$reward->user_id)->first();                    $user->update([                            'cost'=>$user->cost + $hunter_reward->fee - $reward->budget,                            ]);                } catch (\Throwable $th) {                    DB::rollBack();                    return response()->json(['result'=>$th],403);                }                DB::commit();

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章