Transaction example
<?php
DB::beginTransaction();
try {
DB::insert(...);
DB::insert(...);
DB::insert(...);
DB::commit(); //bunu yapmazsan db ye insert işlemerini geçirmiyor
// all good
} catch (\Exception $e) {
DB::rollback(); //bir Exception olduğunda Exception a kadar olan işlemleri yapmaz böyle dediğimizde
// something went wrong
}
// or a complex version:
$user = DB::transaction(function() use ($updateData, $teamIds) {
// Burada bir hata meydana gelirse exception fırlatacak
$user->update($updateData);
// Burada bir hata meydana gelirse üstteki update işlemi
// geri alınacak ve exception fırlatacak.
$user->teams
->sync($teamIds);
return $user;
});
UserUpdated::dispatch($user);
Kaynakça
- Sinan Eldem gist - link
- Laravel Docs, Database Transactions - link