Eliminación de registros en base de datos con Laravel
Clase 19 de 24 • Curso Básico de Testing con PHP y Laravel
Resumen
¿Cómo eliminar un registro de la base de datos?
Eliminar un registro de la base de datos es una tarea crucial que todo desarrollador debe manejar con destreza. En esta guía, detallaremos los pasos para configurar un sistema que lo elimine correctamente, usando un enfoque basado en pruebas. Implementaremos el código necesario dentro de nuestro entorno de desarrollo para garantizar que cada registro eliminado se lleve a cabo de manera segura y eficiente.
¿Cómo empezar con las pruebas?
Antes de proceder a eliminar un registro, es esencial crear un test que valide el funcionamiento correcto de esta operación. Este test comienza con la creación de un objeto de prueba, en este caso, una etiqueta con información falsa.
// Creación de un nuevo test
test('name_of_the_test', function() {
// Usamos la factory para crear una etiqueta con datos falsos
$tag = Tag::factory()->create();
// Código para eliminación
$this->delete(route('tags.destroy', $tag->id))
->assertRedirect(route('home'));
// Confirmación de eliminación
$this->assertDatabaseMissing('tags', [
'id' => $tag->id,
]);
});
¿Cómo configurar la ruta y el controlador?
Una vez que se tiene el test preparado, se procede a configurar la ruta y el controlador necesarios para eliminar el registro. La ruta debe estar configurada para aceptar solicitudes de tipo DELETE.
// Configuración de la ruta para eliminar
Route::delete('/tags/{tag}', [TagController::class, 'destroy'])->name('tags.destroy');
En el controlador, debemos definir el método destroy
, el cual recibirá el objeto a eliminar y procederá a realizar la operación:
// En el controlador TagController
public function destroy(Tag $tag)
{
$tag->delete();
return redirect()->route('home');
}
Verificación y control del flujo
El siguiente paso es realizar la verificación de que el ciclo completo funciona como se espera. Cuando ejecutamos nuestros tests, queremos asegurarnos de que no solo estamos eliminando un registro, sino también redirigiendo correctamente y verificando que el elemento efectivamente ya no está en la base de datos.
- Crear un registro: Utilizamos el método
factory
para crear datos de prueba. - Eliminar la entrada: Se envía una solicitud DELETE para eliminar el objeto.
- Comprobar la eliminación: Confirmamos que el registro no existe más en la base de datos.
- Redirección: Verificamos que el usuario haya sido redirigido adecuadamente a la página principal.
Entendiendo el ciclo del test
Finalmente, este ciclo de pruebas nos ayuda a asegurar que la funcionalidad implementada opera de manera adecuada y que sigue el flujo esperado desde el punto de vista del usuario. Los tests simulan acciones que, eventualmente, un usuario realizará desde el navegador, garantizando así que el estado de la base de datos refleja las operaciones realizadas:
- Creación: El usuario crea un registro.
- Eliminación: Realiza la acción de eliminar.
- Verificación: Corrobora que el registro ya no existe en la base de datos.
Implementar y probar este ciclo es esencial para proporcionar una experiencia fluida y segura para los usuarios que interactúan con la base de datos a través de aplicaciones web. No olvides continuar practicando y mejorando tus habilidades para seguir avanzando en el desarrollo de proyectos exitosos.