Проверьте уникальность двух столбцов в двух таблицах с помощью валидатора в Laravel - PullRequest
1 голос
/ 07 ноября 2019

Я беру ввод поля с именем «email» и проверяю его с помощью средства проверки laravel. Проблема в том, что я хочу убедиться, что данные «электронной почты» должны быть уникальными в двух столбцах в двух разных таблицах. (Продавцы и покупатели не должны иметь один и тот же адрес электронной почты в столбце «Электронная почта».)

Я могу проверить входные данные из одной таблицы и столбца. Как проверить входные данные в обоих столбцах? Ниже приведен мой код.

    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'emailOrNumber' => ['required', 'string','email','max:255','unique:usersNew,email'],
        'password' => ['required', 'string', 'min:8'],

         ]);

Приведенный выше код проверяет электронную почту только в таблице usersNew и в столбце электронной почты. Как проверить обе таблицы здесь?

Ответы [ 4 ]

1 голос
/ 07 ноября 2019

Вы можете использовать правило unique дважды. Один раз для каждой таблицы вам нужно проверить поле на уникальность:

'email' => [..., 'unique:table1', 'unique:table2'],

Если вы не передаете столбец правилу unique, он будет использовать проверяемое имя текущего поля, email вэтот пример.

Документы Laravel 6.x - Проверка - Правила - unique

0 голосов
/ 07 ноября 2019

используйте ниже код

 return Validator::make($data, [
    'name' => ['required', 'string', 'max:255'],
    'emailOrNumber' => ['required',     'string','email','max:255','unique:usersNew|unique:email'],
    'password' => ['required', 'string', 'min:8'],

     ]);

Надеюсь, это поможет вам

0 голосов
/ 07 ноября 2019

Попробуйте это,

return Validator::make($data, [
    'email' => ['required',     'string','email','max:255','unique:user|unique:email'],
    'password' => ['required', 'string', 'min:9'],

     ]);

В этом коде unique:username|unique:email примет адрес электронной почты и имя пользователя в качестве уникального

0 голосов
/ 07 ноября 2019

просто используйте

'email' => 'unique:table1,your_column_name|unique:table2:your_column_name_2'

или используйте ответ https://laracasts.com/discuss/channels/laravel/validate-a-field-from-2-tables-with-different-message

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...