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

Я работаю над проектом Laravel, и у меня возникла следующая проблема, связанная с проверкой.

Раньше я создавал эти правила проверки (связанные с формой регистрации нового пользователя):

$rules = [
    'name' => 'required',
    'surname' => 'required',
    'login' => 'required|unique:pm_user,login',
    'email' => 'required|email|confirmed|unique:pm_user,email',
    'pass' => 'required|required|min:6',
    'g-recaptcha-response' => 'required|captcha',
];

В частности, этот массив правил содержит это правило:

'login' => 'required|unique:pm_user,login',

мне кажется, что это последнее правило проверяет, не существует ли введенный логин еще в таблице pm_user (чтобы убедиться, что не существует строка таблицы pm_user, имеющая то же значение, вставленное в столбец логин).

Это? Поправьте меня, если я делаю неверное утверждение.

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

В частности, у меня есть этот другой массив правил (определенный в классе exndingFormRequest:

public function rules() {
    return [
        'email' => 'required|email',
        'token' => 'required',
    ];
}

В частности, я должен убедиться, что в таблице pm_user еще существует запись, имеющая значение столбца с именем email, которое совпадает со значением emai поле запроса.

Как я могу изменить этот запрос для выполнения этого правила проверки?


person Community    schedule 20.03.2017    source источник


Ответы (1)


В Laravel 5.4 уже есть встроенное правило проверки для этого под названием exists. https://laravel.com/docs/5.4/validation#rule-exists

Я думаю, вы ищете:

'email' => 'required|email|exists:pm_user,email'
person Brian Glaz    schedule 20.03.2017