diff --git a/app/Http/Controllers/Bo/ProductController.php b/app/Http/Controllers/Bo/ProductController.php index 9a9000cc..3febf117 100644 --- a/app/Http/Controllers/Bo/ProductController.php +++ b/app/Http/Controllers/Bo/ProductController.php @@ -158,19 +158,22 @@ class ProductController extends Controller */ public function destroy(Product $product) { - if ($product->deleteOrFail()) { + return DB::transaction(function () use ($product) { + $product->recipes()->detach(); + if ($product->deleteOrFail()) { + return redirect() + ->route('bo.products.index') + ->with('success', trans( + 'crud.messages.has_been_deleted', + ['model' => Str::singular(trans('models.classes.products'))] + )); + } return redirect() - ->route('bo.products.index') - ->with('success', trans( - 'crud.messages.has_been_deleted', + ->back() + ->with('error', trans( + ':crud.messages.cannot_be_deleted', ['model' => Str::singular(trans('models.classes.products'))] )); - } - return redirect() - ->back() - ->with('error', trans( - ':crud.messages.cannot_be_deleted', - ['model' => Str::singular(trans('models.classes.products'))] - )); + }); } } diff --git a/app/Http/Controllers/Bo/RecipeController.php b/app/Http/Controllers/Bo/RecipeController.php index 9366fcb8..9468ad22 100644 --- a/app/Http/Controllers/Bo/RecipeController.php +++ b/app/Http/Controllers/Bo/RecipeController.php @@ -146,19 +146,22 @@ class RecipeController extends Controller */ public function destroy(Recipe $recipe) { - if ($recipe->deleteOrFail()) { + return DB::transaction(function () use ($recipe) { + $recipe->products()->detach(); + if ($recipe->deleteOrFail()) { + return redirect() + ->route('bo.recipes.index') + ->with('success', trans( + 'crud.messages.has_been_deleted', + ['model' => Str::singular(trans('models.classes.recipes'))] + )); + } return redirect() - ->route('bo.recipes.index') - ->with('success', trans( - 'crud.messages.has_been_deleted', + ->back() + ->with('error', trans( + ':crud.messages.cannot_be_deleted', ['model' => Str::singular(trans('models.classes.recipes'))] )); - } - return redirect() - ->back() - ->with('error', trans( - ':crud.messages.cannot_be_deleted', - ['model' => Str::singular(trans('models.classes.recipes'))] - )); + }); } }