Ç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.
Hatalı
Bölüm başlığı “Hatalı”<?php$account->balance -= $amount;$account->save();
$target->balance += $amount; // burada hata olursa para kaybolur$target->save();<?phpDB::transaction(function () use ($account, $target, $amount) { $account->balance -= $amount; $account->save();
$target->balance += $amount; $target->save();});Düzeltme
Bölüm başlığı “Düzeltme”Bağımlı yazmaları tek bir transaction/atomik blok içine sarın.