En este artículo aprenderemos a usar softdelete en laravel y veremos por qué es tan importante implementarlo en nuestros proyectos web, es una herramienta que deberíamos implementar en futuros trabajos.
Laravel SoftDelete es una manera de borrar registros de una manera simbólico por así decirlo, ya que no eliminara por completo tus datos si no que los marcara con una fecha en el que decidiste borrarlos visualmente de tus proyectos, pero dejándolos en espera por cualquier cosa en la base de datos.
¿Que pasaría si has borrado algunos datos por equivocación y no tienes respaldo de ellos? claro empiezas a sudar helado, verdad, pues con Laravel SoftDelete podemos recuperarlos sin que se pierdan eliminando fuertes de cabeza.
A continuación veremos paso por paso el proceso a seguir para implementarlo en nuestros proyectos y así tener los datos asegurados de no ser borrados accidentalmente.
El primero paso es demasiado sencillo, solamente añadimos lo siguiente en el modelo que lo vamos a usar App\Models\MiModelo.
Añadimos
use Illuminate\Database\Eloquent\SoftDeletes;
Y use SoftDeletes; como en el siguiente ejemplo.
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class User extends Model
{
use SoftDeletes;
}
Como segundo paso necesitamos agregar un nuevo campo en nuestra base de datos, para eso nos vamos a nuestra migración y agregamos $table->SoftDeletes(); y ejecutamos la migración.
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
Schema::table('MiTabla', function (Blueprint $table) {
$table->softDeletes();
});
Con estos pasos realizados la próxima vez que eliminemos un registro automáticamente se registrara la fecha actual en el campo delete_at, a su vez cuando mandemos llamar los registros en una consulta, estos no se mostraran en los resultados, ya que están eliminados temporalmente y se excluirán automáticamente de todos los resultados
Extras:
Si queremos ver los registros eliminados marcados con Laravel SoftDelete debemos ser uso de las siguientes sentencias.
$user->trashed();
También podemos hacer uso del método restore datos eliminados por Laravel SoftDetele
$user->restore();
Este método también se usa en consultas para restaurar datos muchos datos
User::withTrashed()
->restore();
Para obtener registros con datos eliminados temporalmente usamos
User::withTrashed()->get();
Cuando queremos eliminar datos de forma permanente, podemos forzar la eliminación usando
$user->forceDelete();
Si queremos obtener solo datos eliminados temporalmente, podemos recuperarlos con la ayuda del metodo onlyTrashed().
User::onlyTrashed()->get();
De esta manera podremos recuperar datos eliminados accidentalmente o para tenerlos por si en algún momento queremos hacer uso de ellos nuevamente, saludos y hasta la próxima..!!
Etiquetas:
Gusto por las motos Harley Davidson, el rock n roll y la informática, creador de este blog para difusión del conocimiento libre, interesado en el mundo open source.
Admin panel + breeze + spatie permission - Laravel 11
Como instalar el paquete intervention/image en Php Laravel
Ir a otra seccion al hacer clic - Angular Scroll to element
Fix | Cannot resolve public path | domPDF | Laravel
Tutorial | Crea tu pagina web | maquetación de tu sitio en laravel
¿Cómo instalar la extensión GD de php en Laravel?