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:

<input type="text"  value="{{ old('title'}}" name="title">