سلام
الان اگه من دفعه اول که دارم محصول رو ایجاد میکنم اپلود فایلها ارور بخوره، باز محصول بدون اطلاعات فایلها اپلود میشه. توی همچین مواردی که داره تو ۲ بخش انجام میشه بهتر نیست از transaction استفاده کنیم که بتونیم رول بک کنیم؟ این موارد چطور هندل میشه معمولا ؟
public function store(CreateProductRequest $request)
{
DB::beginTransaction();
$admin = User::query()->where('role', 'admin')->first();
$createdProduct = Product::create([
'title'=>$request->title,
'description'=>$request->description,
'price'=>$request->price,
'category_id'=>$request->category_id,
'user_id'=>$admin->id,
]);
$result = self::uploadFiles($createdProduct, $request );
if($result == 'failed'){
DB::rollBack();
return back()->with('failed','در آپلود فایلها مشکلی پیش آمده است. لطفا دوباره تلاش کنید.');
}
elseif ($result== 'success'){
DB::commit();
return back()->with('success','ایجاد محصول موفقیت آمیز بود..');
}
}