Laravel 11 E-Commerce - Admin Delete Category
Welcome back to the Laravel E-Commerce Project Tutorial! In this video, we will learn about deleting a category.
Creating a New Function in AdminController
So, let's see how we can delete the category. Go to the Admin Controller and create a new function:
public function delete_category($id)
{
$category = Category::find($id);
if (File::exists(public_path('uploads/categories').'/'.$category->image)) {
File::delete(public_path('uploads/categories').'/'.$category->image);
}
$category->delete();
return redirect()->route('admin.categories')->with('status','Record has been deleted successfully !');
}
Creating the Route
Now, create a route for this. So, go to the web.php file and create a new route here:
Route::delete('/admin/category/{id}/delete',[AdminController::class,'delete_category'])->name('admin.category.delete');
Adding the Delete Link
Now, go to the categories.blade.php file and add the delete link here:
<td>
<div class="list-icon-function">
<form action="{{route('admin.category.delete',['id'=>$category->id])}}" method="POST">
@csrf
@method('DELETE')
<div class="item text-danger delete">
<i class="icon-trash-2"></i>
</div>
</form>
</div>
</td>
Adding Confirmation Before Deleting
After this, let's show the confirmation before deleting the category. So, after the content section directive, add the @push directive and add the following code:
@push('scripts')
<script>
$(function(){
$(".delete").on('click',function(e){
e.preventDefault();
var selectedForm = $(this).closest('form');
swal({
title: "Are you sure?",
text: "You want to delete this record?",
type: "warning",
buttons: ["No!", "Yes!"],
confirmButtonColor: '#dc3545'
}).then(function (result) {
if (result) {
selectedForm.submit();
}
});
});
});
</script>
@endpush
Checking the Result
Now, let's check. Refresh the page. Now, click on this delete link, and here is the confirmation box. Now, click on "Yes", and you can see the category has been deleted.
So, in this way, you can delete the category.
That's all about deleting a category in the Laravel E-Commerce project.