Modelos eliminados temporalmente
En Laravel, los modelos pueden ser «suprimidos suavemente» (soft deleted), lo que significa que, en lugar de ser eliminados permanentemente de la base de datos, se marcan como eliminados. Esto permite que los datos se recuperen más tarde si es necesario. Sin embargo, por defecto, la vinculación implícita de modelos no recuperará aquellos que han sido suprimidos suavemente.
Donde escribir el código
El código debe ser escrito en el archivo routes/web.php
de tu aplicación Laravel.
Ejemplo de Ruta
A continuación, se muestra un ejemplo de cómo recuperar un modelo que ha sido suprimido suavemente:
php
use App\Models\User;
Route::get('/users/{user}', function (User $user) {
return $user->email;
})->withTrashed();
Explicación del código
En este ejemplo, estamos definiendo una ruta que permite acceder a un usuario específico, incluso si ha sido suprimido suavemente. Aquí hay un desglose detallado de cómo funciona:
- Definición de la Ruta: La ruta
/users/{user}
está configurada para buscar un modelo de usuario basado en el ID o slug proporcionado en la URL. Esto significa que la URL debe seguir el formatowww.conozcalaravel.test/users/1
, donde1
es el ID del usuario. - Vinculación Implícita: Cuando Laravel procesa esta ruta, buscará automáticamente el modelo
User
correspondiente al ID proporcionado. Si el usuario ha sido suprimido suavemente, por defecto, Laravel no lo recuperará y generará un error 404. - Uso de
withTrashed
: Al encadenar el métodowithTrashed()
a la definición de la ruta, le indicas a Laravel que también debe incluir los modelos que han sido suprimidos suavemente en la búsqueda. Esto permite que el usuario acceda a su información, incluso si ha sido marcado como eliminado. - Acceso a Propiedades: En la función de la ruta, estamos devolviendo el correo electrónico del usuario utilizando
$user->email
. Esto significa que, independientemente de si el usuario está activo o ha sido suprimido, se podrá acceder a su dirección de correo electrónico.
Visualización Gráfica en Pantalla
Cuando un usuario intenta acceder a un usuario que ha sido suprimido suavemente, como www.conozcalaravel.test/users/1
, y el usuario con ID 1 ha sido suprimido, Laravel devolverá el correo electrónico del usuario en lugar de un error 404.
En la pantalla de Chrome, el resultado podría mostrarse como:
Conclusión
La capacidad de recuperar modelos suprimidos suavemente en Laravel es una característica poderosa que permite mantener la integridad de los datos y la flexibilidad en la gestión de usuarios. Al utilizar el método withTrashed()
, puedes asegurarte de que los usuarios aún puedan acceder a su información, incluso si han sido eliminados de manera suave.
Enlaces de interés
Para más información, visita:
- Página oficial de Laravel – Aquí encontrarás la documentación completa y recursos sobre Laravel, incluyendo guías y tutoriales sobre cómo manejar rutas y modelos.
- Curso de enrutamiento de Conozca Laravel – Un curso que ofrece una explicación detallada sobre el enrutamiento en Laravel, ideal para aprender a manejar rutas y enlaces de manera efectiva.
Etiqueta:rutas