Я пишу приложение Laravel 4, в котором есть таблица users
с обычной контактной информацией. В моей модели users
моя проверка для электронной почты указывает 'email'=>'required|email|unique:users',
который отлично работает при регистрации новых пользователей.
Мой вопрос заключается в том, как обрабатывать форму редактирования пользователя. Когда форма отправляется, я хотел бы, чтобы ограничение на уникальное письмо было уволено только в том случае, если оно не совпадает с старым адресом электронной почты, иначе вы не сможете сохранить свой профиль , поскольку письмо (ваш адрес электронной почты) уже используется.
благодаря
Третий параметр уникального правила позволяет указать идентификатор записи для игнорирования. Когда вы редактируете пользователя, вы хотите, чтобы ваше уникальное правило проверки игнорировало значение, содержащееся в идентификаторе пользователя, который вы редактируете.
'email'=>'required|email|unique:users,email,'.$userId
Здесь вы можете увидеть документы в правиле проверки.
Самая сложная часть, с которой вы столкнетесь, – это выяснить, как отредактировать свое правило, чтобы предоставить идентификатор пользователя, который вы редактируете. Все зависит от того, как у вас установлены ваши правила и где вы выполняете свою проверку.
Уникальный синтаксис проверки
unique:table,column,except,idColumn
Попробуйте это, чтобы исключить текущую электронную почту
unique:'users', 'email', Auth::user()->email