29 de diciembre de 2015

Personalizar validación en Laravel 5 parte 1


Tener una validación personalizada en Laravel es algo que he tenido que usar muy poco ya que Laravel trae una lista de las validaciones de las mas usadas comúnmente.

Solo encontré algunos artículos en ingles que explicaban como crea validaciones personaliza, así que decidí hacer este articulo para tener una guía en español de como hacer una validacion personalizada.


Paso 1

Lo primero que tenemos que hacer para crear nuestra validacion es abrir la clase AppServiceProvider ubicada en: app\Providers\AppServiceProvider.php



Paso 2

En este paso usaremos la clase Validator dentro clase AppServiceProvider para crear nuestra validacion, para esto agregaremos use Validator; a la clase AppServiceProvider y dentro del método boot de creamos nuestra nueva validacion como se ve en la imagen siguiente:


 


A hora veamos la explicación de la primera validacion de las dos que se ven en la imagen anterior:

-El primer parámetro del método extend de la clase Validator es el nombre que le queremos dar a nuestra validacion, en el caso anterior use mayor_que como nombre para mi validacion.

-El segundo parámetro de extend es una función anónima que llevara tres parámetros (Laravel le pasa los valores a los parámetros cuando estamos ya efectuando una validación):


  1. $attribute Es el nombre del campo a ser validado.
  2. $value En este parámetro esta el valor que queremos validar.
  3. $parameters  Este parámetro es un array de valores con los que podemos hacer validaciones mas compleja como la ya existente en Laraver .
          Por ejemplo:  between:10,100 Donde 10 seria $parameters[0] y 100 $parameters[1].

Ya que entendemos los parámetros solo nos falta saber que debe devolver la función anónima que sera siempre un booleano (falso o verdadero), donde TRUE indicara que paso la validacion y FALSE que no la paso y debe mostrar un error de validacion.

Veamos un ejemplo para que este mas claro lo que debe lo que retornar la función anónima:


Ejemplo:

En este caso llenamos el campo de un formulario con el valor de 110 y la regla que le pasamos al Validator o al Request es igual a:

return [
'porcentaje'      => 'mayor_que:100',
];

En este caso la validacion devolverá falso porque 110 es mayor al limite que pusimos de 100 y debe de ser menor o igual para que sea validad. 

return 110 ($value) <= 100 ($parameters[0]);


Paso 3

Ya con los pasos anteriores tiene tu validacion personalizada creada pero el mensaje de error te devolvería algo así: validation.mayor_que, solo tenemos que ir al resources\lang\en\validation.php y en el array asociativo llamado custom agrega gamos el nombre del campo a validar y como se ve en la imagen siguiente creamos otro array donde ponemos el nombre de la validacion creada y su mensaje.





Esta fue una de la formas que Larevel 5 nos permite crear nuestra validaciones personalizadas pero esta forma solo la recomiendo para caso en los que no vallamos a crear mucha validaciones personalizada, seria una mala practica como programadores por eso en la segunda parte de este articulo veremos otro manera de crear validaciones.

No hay comentarios:

Publicar un comentario