Problem
Jeg har en Laravel -brukermodell som jeg la til unik valideringsregel på brukernavn og e -post. Når jeg oppdaterer brukeren min gjennom repoen min, og jeg vil validere modellen min, får jeg en feil. Slik ser oppdateringsmetoden min ut
offentlig funksjonsoppdatering ($ id, $ data)Dette mislykkes i testing med
ValidationException: "Brukernavn": ["Brukernavnet er allerede tatt."],Er det en måte å fikse dette elegant på?
Løsning
Dette er en vanlig feil i Laravel når du oppdaterer noe. Det vil som standard kreve ID som en nøkkel for å matche den eksisterende oppføringen. Så det du trenger å gjøre er å legge til ID for forekomsten som for øyeblikket blir oppdatert til validatoren.
Pass ID for forekomsten din for å ignorere den unike validatoren.
Bruk en parameter i validatoren for å oppdage om du oppdaterer eller oppretter ressursen.
Hvis du oppdaterer, tvinger du den unike regelen til å ignorere en gitt ID: