Problema
Tengo un modelo de usuario de Laravel donde agregué una regla de validación única sobre el nombre de usuario y el correo electrónico. Ahora, cuando actualizo a mi usuario a través de mi repositorio, y quiero volver a validar mi modelo, recibo un error. Así es como se ve mi método de actualización
Actualización de funciones públicas ($ id, $ data)Esto falla en las pruebas con
ValidationException: "nombre de usuario": ["El nombre de usuario ya se ha tomado."],¿Hay alguna forma de arreglar esto con elegancia??
Solución
Este es un error común en Laravel cuando está actualizando algo. Por defecto, requerirá ID como clave para que coincida con la entrada existente. Entonces, lo que debe hacer es agregar la identificación de la instancia que se actualiza actualmente al validador.
Pase la identificación de su instancia para ignorar el validador único.
En el validador, use un parámetro para detectar si está actualizando o creando el recurso.
Si se actualiza, obliga a la regla única a ignorar una identificación dada: