Problema
Ho un modello utente Laravel che ho aggiunto una regola di convalida unica sul nome utente ed e -mail. Ora, quando aggiorno il mio utente tramite il mio repository e voglio convalidare il mio modello, ricevo un errore. Ecco come appare il mio metodo di aggiornamento
Aggiornamento della funzione pubblica ($ id, $ dati)Questo fallisce nei test con
ValidationException: "nome utente": ["Il nome utente è già stato preso."],C'è un modo per ripararlo elegantemente?
Soluzione
Questo è un errore comune in Laravel ogni volta che si aggiorna qualcosa. Per impostazione predefinita richiederà l'ID come chiave per abbinare la voce esistente. Quindi quello che devi fare è aggiungere l'ID dell'istanza attualmente aggiornata al validatore.
Passa l'ID della tua istanza per ignorare il validatore univoco.
Nel validatore, utilizzare un parametro per rilevare se si sta aggiornando o creando la risorsa.
In caso di aggiornamento, costringere la regola univoca a ignorare un determinato ID: