Problema
Eu tenho um modelo de usuário do Laravel que adicionei uma regra de validação exclusiva sobre nome de usuário e e -mail. Agora, quando eu atualizo meu usuário através do meu repositório, e quero re-validar meu modelo, recebo um erro. É assim que meu método de atualização se parece
Atualização de função pública ($ id, $ dados)Isso falha em testar com
ValidationException: "Nome de usuário": ["O nome de usuário já foi levado."],Existe uma maneira de consertar isso elegantemente?
Solução
Este é um erro comum em Laravel sempre que você estiver atualizando qualquer coisa. Por padrão, exigirá o ID como uma chave para corresponder à entrada existente. Então, o que você precisa fazer é anexar o ID da instância atualmente sendo atualizado para o validador.
Passe o ID da sua instância para ignorar o validador exclusivo.
No validador, use um parâmetro para detectar se você está atualizando ou criando o recurso.
Se atualizar, force a regra única a ignorar um determinado ID: