Как установить Rule::unique()->ignore() в API проверки при обновлении модели?

avatar
Vano
1 июля 2021 в 15:42
51
0
0

У меня есть модель EmailAddress со свойством 'email_address'.

Это свойство должно быть уникальным, поэтому я добавил правило в свой StoreEmailAddressRequest. Проблема возникает, когда я хочу обновить модель.

В моем UpdateEmailAdressRequest я добавил запись: Rule::unique('email_addresses')->ignore($id); Теперь, когда я пытаюсь обновить модель и не трогаю email_address, все работает правильно, потому что работает правило игнорирования.

Но если я попытаюсь изменить адреса электронной почты на любой из существующих в базе данных при обновлении модели, правило не будет работать, потому что $id будет соответствовать выбранному мной адресу электронной почты, а не тому, который был у меня в начало. Так что я получаю Integrity constraint violation: 1062 Duplicate entry

Как я могу игнорировать только адрес электронной почты текущей модели, а не тот, который я выбираю при обновлении? Спасибо

Источник
steven7mwesigwa
2 июля 2021 в 18:59
2

Отвечает ли это на ваш вопрос? Модель обновления Laravel с уникальным правилом проверки для атрибута

Ответы (0)