Problem
Mam model użytkownika Laravel, który dodałem unikalną regułę sprawdzania poprawności nazwy użytkownika i e -maila. Teraz, kiedy aktualizuję mojego użytkownika za pośrednictwem mojego repozytorium i chcę ponownie weryfikować mój model, otrzymuję błąd. Tak wygląda moja metoda aktualizacji
aktualizacja funkcji publicznej ($ id, $ data)To nie jest w testowaniu z
ValidationException: „nazwa użytkownika”: [„nazwa użytkownika została już pobrana."],Czy istnieje sposób na eleganckie to naprawienie?
Rozwiązanie
Jest to powszechny błąd w Laravel, gdy cokolwiek aktualizujesz. Domyślnie będzie wymagać identyfikatora jako klucza w celu dopasowania istniejącego wpisu. Więc musisz dołączyć identyfikator instancji, która jest aktualnie aktualizowana do walidacza.
Przekaż identyfikator instancji, aby zignorować unikalny walidator.
W sprawdzeniu walidera użyj parametru do wykrycia, jeśli aktualizujesz lub tworzysz zasób.
Po aktualizacji wymuszaj unikalną regułę, aby zignorować dany identyfikator: