Validar formularios en Laravel

arrow_back Blog

Laravel nos ofrece una serie de herramientas para llevar a cabo la validación de formularios de forma rápida, sencilla y sin reinventar la rueda. La API de validación de Laravel es realmente poderosa y nos permite llevar a cabo cualquier tipo de validación, textos, booleanos, arrays, archivos, campos dependientes etcétera. Todo lo que podamos necesitar a nivel de formularios lo podremos validar fácilmente en Laravel.

Por si fuese poco, además de lo que ya nos ofrece Laravel en su sistema de validación, en Laravel también tenemos la posibilidad de crear nuestras propias reglas de validación 100% personalizadas con sus respectivos mensajes de error.

FormRequests en Laravel

Los FormRequests en Laravel son la herramienta que nos ofrece Laravel para validar los datos de entrada a nuestra aplicación, son fáciles de utilizar y muy flexibles.

Crear un FormRequest en Laravel es tan sencillo como ejecutar el siguiente comando.

El comando anterior habrá creado un nuevo archivo en el directorio app/Http/Requests llamado ProjectRequest.php, si lo abrimos veremos lo siguiente.

Método authorize en los FormRequests de Laravel

El método authorize en un FormRequest de Laravel debe retornar un booleano, true si queremos que este FormRequest pueda ser procesado, false si no queremos que pueda ser procesado.

Una buena forma de utilizar esta característica es a través de roles, permisos o políticas de acceso. Desde el método authorize podríamos comprobar si el usuario identificado puede o no ejecutar este recurso.

Método rules en los FormRequests de Laravel

El método rules como imaginarás debe retornar un array con las reglas de validación que deseamos aplicar a la petición recibida, normalmente de un formulario o de una petición desde una API.

Método messages en los FormRequests de Laravel

El método messages nos permite retornar los mensajes cuando ocurran errores en la validación de la petición recibida, aquí podemos granular al máximo los errores de validación para que sean personalizados al 100%.

Método attributes en los FormRequests de Laravel

El método attributes nos permite modificar el nombre del campo recibido en la petición por un nombre para humanos, es decir, en lugar de "name", podríamos poner "nombre del proyecto".

Método withValidator en los FormRequests de Laravel

El método withValidator nos permite agregar un Hook de validación "after" a una solicitud de formulario. Este método recibe el Validator completamente construido, lo que nos permite llamar a cualquiera de sus métodos antes de que se evalúen realmente las reglas de validación.

Método prepareForValidation en los FormRequests de Laravel

El método prepareForValidation es muy útil si necesitamos sanitizar o modificar/mergear datos antes de aplicar la validación. Imagina que deseas añadir un slug a través de un título, limpiar datos sensibles o cualquier otra cosa similiar.

Propiedad $stopOnFirstFailure en los FormRequests de Laravel

La propiedad $stopOnFirstFailure nos permite decirle a nuestro FormRequest que si encuentra algún error, que no siga procesando el resto y retorne el error en la response.

Validar formularios en Laravel con FormRequests

Una vez hemos creado nuestro FormRequest, aplicar la validación realizada es muy sencillo, sólo debemos pasarlo en la firma del método y Laravel automáticamente aplicará la lógica de validación y retornará la respuesta al cliente.

El método anterior no será ejecutado si el FormRequest no pasa la validación.

Validar formulario de proyectos [fácil]

El primer caso va a ser un sencillo formulario de proyectos con un nombre y una descripción. Una peculiaridad que tendrán todos nuestros FormRequests servirán tanto para crear como para actualizar.

Validar formulario de proyectos con imagen [medio]

Ahora vamos a mejorar nuestro formulario para permitir una imagen destacada, para ello, vamos a ver cómo añadir la validación de archivos de imagen a nuestro FormRequest.

Validar formularios de proyectos con etiquetas [avanzado]

Otro caso típico puede ser validar datos dinámicos que se pueden añadir de forma limitada o ilimitada. En nuestro caso vamos a simular la validación de etiquetas para un formulario de proyectos.

El FormRequest anterior llevará a cabo la validación tanto del array en su conjunto como de cada uno de sus elementos.


Si deseas seguir aprendiendo a validar formularios en Laravel de forma completa y a través de ejemplos completos con el código fuente final, no te pierdas el curso de Formularios en Laravel, aprende a validar formularios complejos.

Cursosdesarrolloweb Cursosdesarrolloweb

Cursosdesarrolloweb es una plataforma educativa con cursos y tutoriales en texto y vídeo.

Términos y condiciones Política de privacidad Formulario de contacto

Copyright 2024 © Todos los derechos reservados.

Contacto