No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Validación

9/23
Recursos

¿Cómo configurar la validación en un sistema?

La validación de datos es una práctica esencial en el desarrollo de aplicaciones web, asegurando que los datos introducidos por los usuarios sean correctos y seguros antes de ser guardados o actualizados en la base de datos. Este proceso evita errores y garantiza que el sistema funcione eficientemente. Veamos cómo configurar la validación al guardar y al actualizar datos en un entorno de programación.

¿Qué pasos seguir para configurar la validación?

  1. Inicializa la configuración en el editor: Comienza por abrir tu editor de código y asegúrate de trabajar sobre el controlador donde deseas implementar la validación. Un manejo de comentarios en el código será útil para diferenciar secciones y facilitar la lectura.

  2. Definir validaciones para guardar y actualizar:

    • Copia la estructura de código existente, si es aplicable, para reutilizar la lógica de validación ya implementada.
    • Añade comentarios descriptivos para identificar lo que hace cada sección del código. Por ejemplo, comentar las secciones como // Validación store y // Validación update.
  3. Configura la validación en el controlador:

    • Asegúrate de que el sistema no permite el envío de datos en blanco. Esto se puede realizar comprobando si el sistema redirige correctamente al detectar un intento de guardar o actualizar con datos vacíos.
    • Implementa un chequeo de redirección, conocido como status 302, para verificar que la validación está activa y redirige de vuelta a la página de origen en caso de fallo.

¿Por qué es importante detectar errores en el proceso de validación?

El proceso de validación no solo sirve para prevenir la entrada de datos vacíos o incorrectos, sino que también diagnostica y previene errores en la aplicación. Por ejemplo:

  • Errores de Servidor (500): Un error 500 indica que hay algo mal configurado a nivel de código. Estos errores deben identificarse y corregirse, usualmente porque se intenta procesar datos que no cumplen con los requisitos mínimos.

  • Campo obligatorio: Asegúrate de que campos esenciales como la URL y la descripción están correctamente validados para su obligatoriedad antes de proceder con cualquier operación de guardado o actualización.

¿Cómo probar la eficacia de las validaciones implementadas?

Después de configurar las validaciones, es crucial verificar que funcionan correctamente. Esto se logra a través de pruebas automatizadas:

  • Ejecución de pruebas automáticas: Utiliza un comando de ejecución de pruebas en tu entorno de desarrollo para evaluar si las validaciones funcionan según lo esperado. Observa los resultados y verifica que tanto las validaciones de guardar (store) como las de actualización (update) están funcionando.

  • Diagnóstico de problemas: Las pruebas deben confirmar que los errores de validación se muestran de manera explícita. Esto se logra verificando los mensajes de error, que usualmente se resaltan en color rojo, y se anuncian claramente para que el desarrollador pueda identificar el problema de inmediato.

En resumen, configurar validaciones efectivas es fundamental para mantener la integridad de los datos y asegurar que el sistema sea sólido y confiable. Asegúrate de respaldar tus validaciones mediante pruebas para mantener la calidad del código a lo largo del tiempo y facilitar futuras modificaciones o actualizaciones en el sistema. ¡Sigue practicando y perfeccionando tus habilidades de validación!

Aportes 5

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Una mejor práctica para hacer validaciones dentro de Laravel es usar los “Form Request” de Laravel, básicamente tu creas un archivo aparte con todas tus validaciones y simplemente le inyectas la dependencia a tu controlador, de esa forma el controlador no se ejecuta hasta que la validación pase y agregas una capa extra de seguridad, recomiendo dar un vistazo 😄
.
https://laravel.com/docs/8.x/validation#creating-form-requests

Me anime a hacer esta practica de una manera diferente. En vez de llamar a validate de la clase Request, cree FormRequest para Repository y directamente esto aplica el validate desde la inyeccion de dependencias. Es mejor practica para no tener que escribir $request->validate() en cada metodo del controlador.

Para crear el FormRequest de Repository:

 php artisan make:request RepositoryRequest

Luego se definen las mismas reglas dentro de RepositoryRequest y en los metodos de controlador en vez de inyectoar Request $request, se inyecta directamente el FormRequest de la siguiente manera:

public function store(RepositoryRequest $request)
    {
        $request->user()->repositories()->create($request->all());
        return redirect()->route("repositories.index");
    }

    public function update(RepositoryRequest $request, Repository $repository)
    {

        $repository->update($request->all());
        return redirect()->route("repositories.edit",$repository);
    }
php artisan test

** Modificaciones**:

  • tests/Feature/Http/Controllers/RepositoryControllerTest.php
    • test_validate_store
    • test_validate_update
  • app/Http/Controllers/RepositoryController.php

Tests:

  • Al enviar datos vacios(create/update), devolver status 302 y mensajes de session

Una alternativa a assertStatus(302) puede ser el método asssertRedirect()

Un tip: en vez de usar el assertStatus(302) podemos usar las constantes del componente de http fundation.

Poner un:

use Symfony\Component\HttpFoundation\Response;

Y luego quedaría así:

        $this->actingAs($user)
            ->post('repositories', [])
            ->assertStatus(Response::HTTP_FOUND)
            ->assertSessionHasErrors(['url', 'description']);

Es mucho más legible a la vista.