我在 Laravel 中遇到交易问题。当我尝试使用以下代码执行此操作时,错误出现在屏幕上,就好像我没有交易一样。
\DB::transaction(function() use ($movement, $movementRows) {
$movement->save();
$movement->rows()->saveMany($movementRows);
});
Run Code Online (Sandbox Code Playgroud)
当我尝试使用下面的代码执行此操作时,尽管第二个对象失败,但会保存第一个对象。
\DB::beginTransaction();
try {
$movement->save();
$movement->rows()->saveMany($movementRows);
\DB::commit();
$success = true;
} catch (\Exception $e) {
$success = false;
\DB::rollback();
}
if ($success) {
// the transaction worked ...
}
Run Code Online (Sandbox Code Playgroud)