Laravel-də beginTransaction ilə işləmək
DB::beginTransaction nədir ?
Siz verilənlər bazası ilə işləyərkən Transaction metodundan istifadə edə bilərsiniz. İş prosesi zamanı hər hansı bir xəta baş verərsə, transaction metodundan istifadə edildiyi üçün digər proseslər durdulacaq.Məsələn:
Çox dilli məlumatlar ilə işləyərkən istifadə olunur.Hər hansı bir yerdə xəta olarsa, proses bitir. Ümumi formada aşağıdakı kimidir.
DB::beginTransaction();
try {
DB::insert(...);
DB::insert(...);
DB::insert(...);
DB::commit();
// all good
} catch (\Exception $e) {
DB::rollback();
// something went wrong
}
Proses zamanı xəta olmazsa try daxilindəki kodlar işləyəcək. Xəta olarsa, catch daxilindəki kodlar işləyəcək.
DB::commit() nədir ?
DB::commit() try daxilində işləyir. Sorğularınızın sürətini və performansını artırmaq üçün əla yoldur. Kodu bitirdikdə istifadə olunur. Məsələn:
DB::commit();
return redirect()->back()->with(); və.s.
DB::rollback() nədir ?
Proses zamanı hər hansı bir xəta baş verərsə,catch daxilindəki kodu işlədir.Bu zaman prosesi geri qaytarmaq üçün DB::rollback() metodundan istifadə olunur.Proses xəta məsajı qaytararaq bitir.
$request->flash() nədir ?
Proses zamanı hər hansı xəta baş verdiyi zaman istifadəçinin daxil etdiyi məlumatlar itir.Bunun qarşısını almaq üçün
$request->flash() metodundan istifadə olunur.Bu zaman məlumatlar session-da yadda saxlanılır.Təbii ki, bu məlumatları göstərmək üçün proqramçı eyni məlumatları session-dan almalıdır.Bu zaman old metodundan istifadə olunur.Məsələn: