Hello Laravel Developers,
Today we will learn about Soft Delete in Laravel 8.
Data is crucial for any Laravel project. Sometimes we accidentally delete some data, which means it is gone permanently and we cannot restore it. This will create issues if the data is used in other project parts. To avoid issues, there comes the need for Soft Delete.
Let’s understand what soft delete is and why it is used
Contents
The soft delete feature in Laravel never deletes data from the database. It just prevents the data from showing. The soft delete data can be restored back or permanently deleted from the database.
As mentioned, soft delete does not actually remove data from the database. A deleted attribute is set on the model that indicates the date and time when it was deleted. For the purpose of data safety and backup, we use the soft delete in Laravel.
Let’s see how to use soft delete in Laravel.
Step 1: Create Migration
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateCompaniesTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('companies', function (Blueprint $table) { $table->id(); $table->string('title'); $table->softDeletes(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('companies'); } }
Now you can find the deleted_at column in your companies table.
Step 2: Create a Model
To enable soft deletes for a model, add the
Illuminate\Database\Eloquent\SoftDeletes trait to the model:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; class Company extends Model { use SoftDeletes; public $fillable = ['title']; }
The SoftDeletes trait will automatically cast the deleted_at attribute to a DateTime / Carbon instance for you.
Step 3: Get Records
You can get all records like as below,
$companies = Company::get();
It will return all records that have deleted_at = null only
You can also get deleted records with soft delete.
$company = Company::withTrashed()->get();
Hence, it was all about using Soft Delete in Laravel 8. Avoid permanent loss of your critical data by implementing the Laravel soft delete feature. Share the article with your friends and stay in touch with us.
Happy Coding!
E-commerce has transformed the way consumers shop for products and services and interact with businesses.…
The e-commerce world is constantly in flux. New tech and strategies emerge daily to help…
Hello Magento Friends, In today’s blog, we will discuss adding a header and footer to…
Hello React Native Friends, Building a visually appealing and responsive mobile app is crucial in…
We're thrilled to announce the release of Hyvä Themes 1.3.6 and 1.3.7! These latest updates…
Your e-commerce platform is surging - orders are rolling in, traffic spikes are becoming the…