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();