Hello Dev.
In this example, I will learn you how to restore back deleted record in laravel. you can easy and simply restore back deleted record in laravel.
In this case, you will need to be contacted by a developer or database administrator to Restored back your deleted Data.
Laravel Eloquent ORM provides us soft delete trait, we use this trait with trashed to restore or recover data, I will give you a quick tip to undo or restore data in Laravel Project.
First, you need to download the laravel fresh setup. Use this command then download laravel project setup
composer create-project --prefer-dist laravel/laravel blog
After successfully install laravel 8 Application, Go to your project .env file and set up database credential and move next step
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name
DB_USERNAME=here database username
DB_PASSWORD=here database password
we are going to create file upload application for restores. so we have to create migration for "restores" table and create model using Laravel 8 php artisan command, so first fire bellow command
php artisan make:migration create_restores_table --table=restores
After this command you will find one file in following path "database/migrations" and you have to put bellow code in your migration file for create restores table
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateRestoresTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('restores', function (Blueprint $table) {
$table->id();
$table->string('name',25);
$table->string('address',70);
$table->timestamps();
$table->softDeletes();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('restores');
}
}
Now you have to run this migration by following command
php artisan migrate
Now you can add table field in Restore model
App\Models\Restore.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Restore extends Model
{
use SoftDeletes,HasFactory;
protected $table = 'restores';
}
Here, we need to add route for ajax form submit. so open your "routes/web.php" file and add following route.
routes/web.php
use App\Http\Controllers\DataRestoreController;
Route::get('/data', [DataRestoreController::class, 'index'])->name('data.list');
Route::get('/data-delete/{id}', [DataRestoreController::class, 'deleteData'])->name('data.delete');
Route::get('/data-restore/{id}', [DataRestoreController::class, 'restore'])->name('data.restore');
In this step, now we should create new controller as DataRestoreController. So run bellow command and create new controller. bellow controller for create DataRestoreController
php artisan make:controller DataRestoreController
app/Http/Controllers/DataRestoreController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Restore;
use Session;
class DataRestoreController extends Controller
{
public function index(){
$Getdata = Restore::get();
return view('index',compact('Getdata'));
}
public function deleteData($id){
$deleteData = Restore::find($id);
$deleteData->delete();
return redirect()->route('data.list')->with('message','Data successfully deleted. <a href="'.route('data.restore',$deleteData->id).'">Whoops, Undo</a>');
}
public function restore($id)
{
$restoreDataId = Restore::withTrashed()->find($id);
if($restoreDataId && $restoreDataId->trashed()){
$restoreDataId->restore();
}
return redirect()->route('data.list')->with('message','Data restored successfully');
}
}
In last step. In this step we have to create two blade file index file. So mainly we have to create contactForm file and contactMail file. So finally you have to create two following bellow blade file
resources/views/index.blade.php
<!DOCTYPE html>
<html lang="en">
<head>
<title>List Data</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<br>
<h3>Data Restore Example - meaningarticles.com</h3>
<br>
<div class="row justify-content-end mb-1">
<div class="col-sm-8">
@if(Session::has('message'))
<div class="alert alert-success alert-dismissible p-2">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
<strong>Success!</strong> {!! session('message')!!}.
</div>
@endif
</div>
</div>
<table class="table table-bordered table-sm">
<thead>
<tr>
<th>S.no</th>
<th>Name</th>
<th>Address</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@if ($Getdata->count() > 0 )
@foreach($Getdata as $key => $data)
<tr>
<td>{{ $key+1 }}</td>
<td>{{$data->name}}</td>
<td>{{$data->address}}</td>
<td>
<a href="{{route('data.delete',$data->id)}}" class="btn btn-danger btn-sm" role="button">Delete</a>
</td>
</tr>
</tbody>
@endforeach
@else
<h2>No Data Found !</h2>
@endif
</table>
</div>
</body>
</html>
Now we are ready to run contact form submit request with laravel 8 so run bellow command for quick run
php artisan serve
Now you can open bellow URL on your browser
i'm hoping it assist you to, thanks for visit my article if you like my article then proportion together with your friend and social platform.