> Faqs > Cómo sacar el primer error de validación con Laravel 6

Cómo sacar el primer error de validación con Laravel 6

Algunas cosas de Laravel 6 me parece que han cambiado de versiones anteriores.

Estoy intentado hacer una validación personalizada y necesito pasar a la página de retorno solamente el primer error de validación encontrado. Solo el primero, no es el conjunto entero de validaciones.

Venía haciendo uso de un array de messages anteriormente, accediendo al primer elemento del array obtenido.

// La validación la tengo en un objeto $validator
$validator->messages()[0]

Eso me entregaba anteriormente el primer mensaje de error, pero ahora obtengo este mensaje de error:

Cannot use object of type Illuminate\Support\MessageBag as array

¿Cómo puedo acceder al primer error de validación con Laravel 6?

Respuestas

En Laravel 6, después de hacer una validación personalizada y comprobar que falla puedes obtener la lista de errores con el método $validator->errors() y luego first() para obtener el primer mensaje de error existente.

En el siguiente código compruebo que la validación Laravel ha fallado, entonces devuelvo al navegador a la página anterior, enviando solamente el primer error de validación encontrado.

if ($validator->fails()) {
    return back()->with('error', $validator->errors()->first());
}

Esta es una lógica muy simple, seguro que la tienes que adaptar a tu caso concreto de validación.

Miguel Angel
3310 147 216 17