Table of contents
In this short post, I will share simple methods for deleting records in Laravel 8, and 9 with examples.
Â
Deleting Examples:
Â
Single delete with Laravel query builder:
DB::table('posts')->where('id', 1)->delete();
Â
Multiple delete with Laravel query builder:
DB::table('posts')->whereIn('id', [2, 4])->delete();
Â
Single delete with Laravel eloquent:
Post::where('id', 1)->delete();
Â
Multiple delete with Laravel eloquent:
Post::whereIn('id', [2, 4])->delete();
Â
That's it. Next, we will implement in our controller example:
Â
Delete Implementation
Â
Controller code:
/**
* Remove the specified resource from storage.
*
* @param \App\Models\Post $post
* @return \Illuminate\Http\Response
*/
public function destroy(Post $post)
{
$post->delete();
return redirect()->route('posts.index')
->withSuccess(__('Post delete successfully.'));
}
Â
Route code:
Route::resource('posts', PostsController::class);
Â
Blade code:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Delete Record in Laravel 8 - codeanddeploy.com</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<div class="container mt-5">
@if(Session::get('success', false))
<?php $data = Session::get('success'); ?>
@if (is_array($data))
@foreach ($data as $msg)
<div class="alert alert-success" role="alert">
<i class="fa fa-check"></i>
{{ $msg }}
</div>
@endforeach
@else
<div class="alert alert-success" role="alert">
<i class="fa fa-check"></i>
{{ $data }}
</div>
@endif
@endif
<table class="table table-striped" id="users-table">
<thead>
<tr>
<th scope="col">Title</th>
<th scope="col">Description</th>
<th scope="col">Body</th>
<th scope="col">Delete</th>
</tr>
</thead>
<tbody>
@foreach($posts as $post)
<tr>
<td>{{$post->title}}</td>
<td>{{$post->description}}</td>
<td>{{$post->body}}</td>
<td>
<form method="post" action="{{route('posts.destroy',$post->id)}}">
@method('delete')
@csrf
<button type="submit" class="btn btn-danger btn-sm">Delete</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</body>
</html>
Â
That's it. I hope it helps.
Â
Thank you for reading :)
Read next