İçeriğe geç

Çoklu Yazma İçin Transaction Yok (ARCH7065)

Anahtar php.orm.missing-transaction-for-multi-write · Önem warning · Kategori orm

Aynı metotta iki veya daha fazla bağımlı kalıcılaştırma işlemini açık bir transaction/atomik blok içine sarmamak, kısmi commit riski yaratır. İlk yazma başarılı, ikincisi başarısız olursa veri tutarsız kalır.

<?php
$account->balance -= $amount;
$account->save();
$target->balance += $amount; // burada hata olursa para kaybolur
$target->save();
<?php
DB::transaction(function () use ($account, $target, $amount) {
$account->balance -= $amount;
$account->save();
$target->balance += $amount;
$target->save();
});

Bağımlı yazmaları tek bir transaction/atomik blok içine sarın.