У меня есть таблица, в которой я пытаюсь хранить адреса электронной почты. Эти адреса электронной почты будут сохранены с помощью user_id
.
Например, в таблице email_list
|ID | user_id | email | ............................... | 1 | 101 | john@gmail.com | ............................... | 2 | 102 | john@gmail.com |
В приведенной выше таблице вы можете видеть, что те же адреса электронной почты сохраняются с разными user_id
, вот что я пытаюсь сделать.
В настоящее время я пытаюсь простую проверку laravel, как это.
'email' => 'required|unique:email_list|email',
Так есть ли способ проверить уже существующие адреса электронной почты, если строка имеет тот же user_id
? Я использую laravel 5.2. Я хотел бы оценить, если кто-то меня поведет. спасибо
Отредактировано через 3 часа
Я также добавляю такой же вопрос в github как вопрос . Человек говорит, что мне нужно создать собственное правило проверки.
Принуждение уникального правила игнорировать заданный идентификатор
Вы можете указать идентификатор, который будет игнорироваться как дополнительный третий параметр. Кроме того, если ваша таблица использует имя столбца первичного ключа, отличное от id, вы можете указать его как необязательный четвертый параметр
'email' => "unique:{$table},{$field},{$user->id},{$idField}"
Так что в вашем случае это будет следующим образом
'email' => "unique:email_list,email,{$user->id},user_id'
Это против существующего правила.
Прежде всего, проверка существующего правила основана на условии, что поля используются или нет.
Я думаю, если бы мы использовали это как противоположное, это было бы полезно для вас.
Пример: –
'email' => 'exists:email_list,email,user_id,!102'
т.е.
'email' => 'exists:email_list,email,user_id,!'. $user_id
в противном случае,
'email' => 'exists:email_list,email,user_id,!'. Input::get(user_id)
используя Input & import
use Illuminate\Support\Facades\Input;
и изменение содержимого сообщения
Пожалуйста, попробуйте эти ответы и ответьте, что произошло .. или это работает для вас ..?