Comparte en Facebook Twitter Google+

larave-restore-banner-image

Como usuarios, estoy seguro que más de una vez les ha ocurrido que en alguna aplicación borraron o eliminaron algún registro por accidente y perdieron alguna información valiosa o alguna transacción importante y al final todo acabó siendo un desastre.

Como programadores debemos ser conscientes de estos posibles eventos y brindar a nuestros usuarios la posibilidad de corregirlos en el momento de una forma fácil y rápida, evitando toda clase de malestares que pueda generar la pérdida de información.

 Eloquent restore()

Usando Eloquent se puede recuperar un modelo eliminado (“soft-deleted”) haciendo uso del método restore().

Podemos escribir nuestro propio método para indicarle al usuario que puede restaurar el registro que acaba de eliminar.

Con el ejemplo de hoy aprenderás a usar correctamente esta funcionalidad y te aseguro que al aplicarla a tus proyectos tus usuarios quedarán sorprendidos y muy agradecidos por ello.

 Crear un nuevo modelo

Vamos a crear una pequeña agenda de contactos con nombre, teléfono y dirección de correo electrónico.

Iniciamos creando el modelo llamado Contact

Editar la migración Contact

Debemos editar el archivo para agregar los campos requeridos a la base de datos, si eres nuevo con el tema de migraciones puedes visitar la clase Creando migraciones en laravel 5

En este caso hacemos uso de un nuevo método predefinido por Laravel llamado softDeletes() que debe incluirse en todas las tablas sobre las cuales queremos usar restore();

 Preparando el modelo para usar restore()

Laravel requiere de una configuración adicional en el modelo que le permita trabajar con el sistema de recuperación de datos, esto lo hacemos agregando una variable $dates con el campo deleted_at que definimos anteriormente en la migración

Uso del componente Faker para agregar datos de prueba

No voy a entrar en detalle sobre el uso de este componente ya que hay una clase dedicada a Seeders y el componente Faker en Laravel 5

En este caso se crean 10 registros de prueba para el modelo Contact

No olvides agregar la clase ContactTableSeeder para su ejecución en DatabaseSeeder.php

Migrar base de datos y llenar con datos de prueba

En este punto podemos ejecutar la migración y el seeder para pasar a trabajar con el controlador.

Crear una vista

Contamos en este momento con información en nuestra base de datos, el siguiente paso es poder visualizarla, para ello creamos una vista llamada list.blade.php

Nota: esta vista extiende de app.blade.php, recuerda que esa plantilla viene construida por defecto con la primera instalación de Laravel.

 Creando rutas

En este caso vamos a eliminar, recuperar y ver la lista de los contactos agendados

Métodos de la clase ContactController

Se definen los métodos a los que apuntan las rutas que acabamos de crear.

Notese que en los métodos destroy y restore pasamos una variable a la vista, esto se hace con el fin de comprobar la acción realizada y mostrar un mensaje en pantalla, para ello editamos nuevamente el archivo list.blade.php

Ahora al eliminar un registro veremos un mensaje en la parte superior con la opción de restaurarlo nuevamente

laravel-restore

Puedes aprender mucho más visitando los siguientes enlaces:

 

Aprende PHP, Laravel y más por sólo 999 al mes: ver planes.

Lección anterior Crear un Thumbnail con Laravel 5 y Bootstrap Lección siguiente Obtener videos de Youtube - Laravel 5