Comparte en Facebook Twitter Google+

aprende-como-validar-datos-con-laravel

La validación de datos de cualquier app es de gran importancia y se deben proveer todos los posibles escenarios y considerar los posibles errores que puede cometer un usuario al interactuar con el sistema.

Básicamente existen 3 formas de validar un formulario, desde el frontend (javascript, jquery, html5), desde el backend (reglas y funciones de validación) y desde la base de datos, donde se pueden definir los tipos, cantidad de caracteres y otros parámetros que pueden ser configurados para este proceso.

En este ejemplo veremos un poco sobre estos 3 tipos de validación usando Laravel 5 y Eloquent y la validación por defecto de Html5.

Crear nueva base de datos

Validación a nivel de base de datos con Eloquent

Si no conoces mucho sobre el uso de eloquent te recomiendo visitar este tutorial básico de Fluent y Eloquent 

Vamos a crear un modelo para registro de clientes haciendo uso de artisan

ahora podemos editar la migración de la siguiente forma

aprende mas sobre Crear Nuevas Migraciones

required() indica que el registro no puede quedar vacío y que es requerido el valor, unique() valida que un valor no pueda repetirse en la tabla, en este caso dos clientes no pueden tener registrado la misma dirección de email, los campos de tipo enum se usan para limitar las opciones que pueden ingresar al momento de registrar y el default() almacena un valor por defecto en caso de que el usuario no suministre ningún dato.

Por supuesto debemos ejecutar la migración para verificar que todo esté bien

editamos el archivo Client.php de la siguiente forma

Este tipo de validación impide que se registre información que no cuente con los criterios definidos, pero en caso de que el registro falle no ofrece ninguna alerta al usuario, por ello necesitamos usar un método que permita un poco mas de interacción.

Validacion Html5

Iniciaremos creando un formulario (‘form.blade.php’) de registro para los datos establecidos en la migración usando Form() para facilitar el proceso

ahora creamos un controlador para clientes llamado ClientController

Definimos las rutas de acceso en Laravel

Creamos la funcion que nos retorna el formulario de registro

Si intentamos guardar nos aparecerá un error de validación en pantalla ya que definimos ciertos atributos al crear el formulario como ‘required = required’ y para el email no usamos un campo de texto sino uno de tipo email (Html5), por lo cual veremos algo como lo siguiente

 

email-validation

Criterios de validación de Laravel

En Laravel podemos hacer uso del método Validator() con el cual podremos establecer ciertas reglas que serán verificadas al momento de enviar los datos, en caso de que la validación falle la aplicación genera los mensajes de error correspondientes para cada campo que podremos mostrar en la vista para indicar al usuario las correcciones que debe realizar.

Vamos a escribir la función que permitirá almacenar los datos de los clientes.

Perfecto! de esta forma Laravel valida que la información enviada sea la correcta

Para ver los errores que mostrarían las validaciones que colocamos en el controlador, lo puedes hacer desactivando un momento validación HTML5 cambiando esta linea

laravel_validation

quiere decir que el email es requerido y sera único dentro de la tabla clients

indica que solo admite los valores empresa y particular, por lo cual cuando seleccionamos la opcion “otros” en el formulario nos mostrara un error de validación.

en este caso el campo register solo es requerido cuando se haya seleccionado ‘empresa’ en el campo anterior.

validacion-dependiente

Guardar nuevo registro

Si no ocurre ningún problema durante la validación el registro podrá ser guardado y redirigir al usuario a la lista de clientes

y podremos ver algo así

clients-list

No olvides dejar tus comentarios y sugerencias.

Recuerda que este tutorial es parte de la serie Laravel desde cero, te invito a que le des un vistazo y aprendas mucho mas sobre este poderoso Framework.

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

Lección anterior Sistema de autenticación de usuarios en Laravel Lección siguiente Aprende a usar Eloquent el ORM de Laravel