我有几个SQL查询,我必须绑定在事务中,以便如果任何一个查询失败,它将转到初始化,所以我只是这样做,这里是代码。
DB::beginTransaction();
try {
//update loan application
$loanApplication->status = 'DISBURSED';
$loanApplication->tenure = $offerDetails['tenure'];
$loanApplication->amount_offered = $offerDetails['loanAmount'];
$isUpdated = $loanApplication->update();
//create loan disbursal
LoanDisbursal::insertGetId([
'created_dt' => Carbon::now(),
'user_id' => $loanApplication->user_id,
'loan_account' => $loanApplication->application_id,
]);
//create loan profile account
ProfilesHasAccount::insertGetId([
'user_id' => $loanApplication->user_id,
'gateway' => $this->gatewayAlias,
'account_segment' => 'BUSINESS',
'account_type' => 'LOAN',
'created_dt' => Carbon::now(),
'status' => 'ACTIVE',
]);
} catch (\Throwable $th) {
dd(DB::rollback());
dd($th);
}
DB::commit();
现在,根据事务,如果任何一个查询失败,它必须回滚所有已完成的SQL操作,但它不在这里发生
任何想法或建议,将非常有帮助
1条答案
按热度按时间q3qa4bjr1#
好吧,我找到了答案,问题是我的项目包含多个数据库,所以我只需要像这样显示事务上的连接
就是这样!