Como criar exclusão lógica do registro do banco de dados com Laravel 10
Neste tutorial, será apresentado como realizar a exclusão lógica de registros no banco de dados com Laravel 10.
Primeiramente, será demonstrado como criar uma migration com SoftDelete.
Em seguida, será explicado como utilizar SoftDelete no Laravel.
Por fim, será mostrado como realizar a exclusão lógica do registro no banco de dados, preservando a integridade dos dados.
Download do código fonte desenvolvido na aula: Download
Curso de Laravel: Mais Detalhes do Curso
Playlist completa sobre Laravel: Acessar
Receber as aulas gratuitas do curso de Laravel: Acessar
O que é exclusão lógica? A exclusão lógica refere-se a uma abordagem de exclusão de registros em um banco de dados sem realmente removê-los fisicamente. Em vez disso, um campo chamado "deleted_at" é usado para marcar registros como excluÃdos, mantendo-os na tabela, mas indicando que não devem ser considerados em consultas regulares.
Quando você exclui um registro usando a exclusão lógica, o Laravel define automaticamente a data e hora atual no campo "deleted_at", indicando que o registro está marcado como excluÃdo.
A exclusão lógica é útil em situações em que você deseja manter um histórico de registros excluÃdos ou permitir a recuperação de registros excluÃdos acidentalmente. Além disso, ela pode ser útil para conformidade com regulamentações que exigem a retenção de dados.
Para começar, é utilizado como base o projeto da aula "Como gerar Word com Laravel 10".
Necessário acrescentar a coluna "deleted_at" na tabela "contas" no banco de dados.
Para criar essa coluna, é utilizada uma migration. Foi criada a migration "database/migrations/2024_02_21_084702_alter_contas_table.php", na qual é utilizado "softDeletes" para criar a coluna "deleted_at".
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('contas', function (Blueprint $table) {
$table->softDeletes()->after('updated_at');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::create('contas', function (Blueprint $table) {
$table->dropSoftDeletes();
});
}
};
Após criar a migration, a mesma é executada.
php artisan migrate
Para ativar o uso da coluna "deleted_at", é necessário acrescentar na model.
use Illuminate\Database\Eloquent\SoftDeletes;
class Conta extends Model
{
use SoftDeletes;
}
Com a coluna "deleted_at" ativada, sempre que essa coluna possuir valor, será indicado que o registro está com a situação de exclusão lógica ativa.
Ao recuperar os registros, aqueles que possuÃrem valor na coluna "deleted_at" não serão recuperados.
Baixar o código-fonte completo do projeto.
Bom, era isso. Espero que o tutorial tenha sido útil!