En esta lección veremos cómo podemos mostrar mensajes de validación en nuestras vistas, utilizando la variable $errors y los diferentes métodos que Laravel nos proporciona. También veremos cómo podemos conservar el valor de un campo en caso de que ocurran errores de validación.

Repositorio

Ver el código de esta lección en GitHub

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Notas

Mostrar mensajes de validación

Para trabajar con mensajes de validación en las vistas utilizamos la variable $errors. Esta variable es pasada automáticamente por Laravel a la vista, exista o no algún error registrado en la sesión. Esta variable contiene una instancia de Illuminate\Support\MessageBag y esta clase tiene diferentes métodos que podemos utilizar para obtener y mostrar los mensajes de error al usuario.

Uno de estos métodos es $errors->any(), con el que podemos comprobar si existe o no algún error. Este método devolverá verdadero si hay algún error y falso si no hay ninguno:

@if ($errors->any())
    <p>Hay errores!</p>
@endif

Otro método es $errors->all(). LLamando a este método dentro de un foreach() podemos iterar através de todos los mensajes:

<ul>
    @foreach ($errors->all() as $error)
        <li>{{ $error }}</li>
    @endforeach
</ul>

También podemos obtener todos los mensajes de validación de un campo en específico. En este caso utilizamos el método get() pasando como argumento el nombre del campo:

<ul>
    @foreach ($errors->get('email') as $error)
        <li>{{ $error }}</li>
    @endforeach
</ul>

Si queremos obtener solo el primer mensaje de validación de un campo en específico utilizamos el método first(), pasando como argumento el nombre del campo:

<p>{{ $errors->first('email') }}</p>

Para determinar si existen mensajes de validación para un campo utilizamos el método has():

@if ($errors->has('email'))
    <p>{{ $errors->first('email') }}</p>
@endif

Observa como utilizamos el método first() junto con el método has().

Conservar el valor de un campo

Para conservar el valor de un campo, en caso de que ocurran errores de validación y el usuario sea enviado de vuelta al formulario, podemos utilizar la función helper old() pasando como primer argumento el nombre del campo, para asignar así el valor del atributo value de la etiqueta input:

<input type="email" name="email" id="email" placeholder="[email protected]" value="{{ old('email') }}">

Material relacionado

Únete a nuestra comunidad en Discord y comparte con los usuarios y autores de Styde, 100% gratis.

Únete hoy

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Validar datos de peticiones HTTP con Laravel (TDD) Lección siguiente Uso de múltiples reglas de validación en Laravel