In this Laravel tutorial we are going to learn How to use Soft Delete in Laravel framework. We will see how can we restore deleted records and again we can see that records in our Laravel application with the help of soft delete.
Install Laravel Framework
For implement SoftDelete, first we need to download fresh copy of Laravel framework. So we have to go to command prompt and run following command.
composer create-project --prefer-dist laravel/laravel soft_delete
Make Database Connection
After download latest version of Laravel framework, first we need to make databae connection. So for make database connection in Laravel application, we have to open .env file and under that file we have to define our MySQL database configuration details.
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=testing
DB_USERNAME=root
DB_PASSWORD=
Create Model Class
php artisan make:model Category -m
First go to your migration and add this column below
$table->softDeletes();
Go to your model and add this class
use SoftDeletes;
Next go your controller
public function AllCat(){
$categories = Category::latest()->get();
$traChat = Category::onlyTrashed()->latest()->paginate(5);
return view('admin.category.index',compact('categories','traChat'));
}
Next go to your view file where you want to show the deleted data
<div class="container">
<div class="row">
trash part
</div>
<table class="table">
<thead>
<tr>
<th scope="col">SL No</th>
<th scope="col">Category Name</th>
<th scope="col">User</th>
<th scope="col">Created At</th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody>
@foreach($traChat as $category)
<tr>
<th scope="row">{{ $category->id}}</th>
<td>{{ $category->category_name}}</td>
<td>{{ $category->user->name }}</td>
<td>{{ $category->created_at}}</td>
<td>
<a href="{{ route('category.edit',$category->id)}}" class="btn btn-info">Edit</a>
<a href="{{ route('category_delete',$category->id)}}" class="btn btn-danger">Delete</a>
</td>
</tr>
<tr>
@endforeach
</tbody>
</table>
</div>
Restore deleted data through softdelte
Go to web.php and paste below code.
Route::get('/category/restore/{id}',[CategoryController::class,'Restore'])->name('category_restore');
Go to your blade page
<a href="{{ route('category_restore',$category->id)}}" class="btn btn-info">Edit</a>
Next go to your controller and put down below function
public function Restore($id)
{
$delete = Category::withTrashed()->find($id)->restore();
return redirect()->route('all.category')->with('delete', 'category delete successfully');
}
Now Deleted data restore successfully.