Introducción
Pero muchos no saben que el método first()
es mas potente de lo que pensamos. Es tan potente que hace innecesario la utilización de la función has()
.
Mostrando los errores del formulario en Laravel
Cuando la validación de los datos de un formulario no cumple con las reglas que establecemos, tenemos disponible la variable $errors
para consultar si existen errores o no y mostrar cada uno (o todos) los errores.
Básicamente, cuando queremos mostrar un error individualmente, hacemos algo así:
Como podemos ver, utilizamos el método has()
que esta disponible en la variable $errors
, brindada por Laravel. Y luego, el método first()
nos permite mostrar el primer error del campo username.
También podes establecer clases CSS si existen errores para resaltar el error, haciendo el ejemplo anterior un poco mas trabajado:
Incluimos el código anterior en una etiqueta div para añadirle la clase CSS «alert-danger» (muy conocida en el Framework Bootstrap).
Pero este Laravel Tip se trata de como reducir este código, así que vamos a ver como se hace.
Reduciendo código de errores de Laravel
Vamos a utilizar solamente el método first()
para hacer lo mismo pero con menos código. Tal vez no sabias, pero la función first()
admite un segundo argumento que debe ser una cadena de caracteres que se mostrará en el caso que existan errores para el campo que introducimos en el primer argumento.
Veamos como sería tomando como ejemplo la primer imagen.
En caso que «username» contenga errores, se mostrará el mensaje del error correspondiente en el comodín :message
. Y si el campo no tuvo errores, no se mostrara nada.
Como podemos ver, con una única linea de código podemos «consultar» si un campo en particular tuvo errores y a su vez, mostrar el error entre las etiquetas que deseemos.
Vamos a ver como sería con el segundo ejemplo que planteamos anteriormente que era apenitas mas complejo.
Vemos que no es necesario/obligatorio ingresar etiquetas HTML, también podemos ingresar una cadena de texto que se mostrará, en este caso, como una clase CSS adicional.
Versión disponible
Está característica del método first()
esta disponible desde la versión Laravel 5.0, así que ya puedes comenzar a utilizarla 😉.
Conclusión
Vimos que el método first()
es mas potente de lo que pensábamos y Laravel esta plagado de estos pequeños detalles que nos hacen la vida más fácil y código mas sencillo. Espero que te haya gustado este tip de Laravel y nos vemos en la próxima. 😉🤙
Muchas gracias, excelente!! y elegante a su vez, yo directamente ya no usaba el has y solo mostraba first, pero fue algo mas de verlo en la practica, ni sabia de esta característica del segundo parámetro, es excelente y me parece incluso mas elegante que un ternario y eso que un ternario es bastante refinado, gracias excelente contenido.
https://twitter.com/calebporzio/status/1111366190444802048
Lo de citar la fuente, ya para otra vez