我编写了以下代码,以验证将余额和历史记录保存在数据库中或不保存其中的交易。但是,当我运行代码并检查数据库时,我发现余额仍在插入银行中而不是被取消。可能是什么错误?
下面是我的余额模型负责执行操作的方法代码
public function deposit(float $value) : Array {
DB::beginTransaction();
$totalBefore = null;
// $totalBefore = $this->amount ? $this->amount : 0;
$this->amount += number_format($value, 2, ".", '');
$deposit = $this->save();
$historic = auth()->user()->historics()->create([
'type' => 'I',
'amount' => $value,
'total_before' => $totalBefore,
'total_after' => $this->amount,
'date' => date('Ymd'),
]);
if ($deposit && $historic) {
DB::commit();
return [
'success' => true,
'message' => 'Sucesso ao recarregar!'
];
}
else {
DB::rollBack();
return [
'success' => false,
'message' => 'Falha ao recarregar!'
];
}
}
答案 0 :(得分:0)
使用save()时,db :: rollBack()不会将其回滚。