Laravel проверка по двум столбцам - PullRequest
1 голос
/ 27 марта 2020

У меня есть таблица контактов с полем email и alteranate_email. При добавлении нового контакта я хочу проверить, что адрес электронной почты не должен присутствовать ни в электронном письме, ни в alteranate_email. Например, присутствует контакт с alteranate_email = 'abc@example.com'. Когда я пытался добавить новый контакт с электронной почтой = 'abc@example.com', он позволяет мне добавить новый контакт.

Я пробовал приведенный ниже код, но он не работает.

 $validator = Validator::make($request->all(), [
            'email' => ['nullable', 'email',
                 Rule::unique('contacts')->where(function ($query) use ($request) {
                     return $query->where('email', $request->email)->orWhere('alteranate_email', $request->email);
                 }),
            ],

        ]);

1 Ответ

1 голос
/ 27 марта 2020

Вы пытаетесь использовать два unique вместо создания нового правила. Попробуйте эти однострочные решения ниже.

'email' => 'nullable|email|unique:contacts,email|unique:contacts,alternate_email'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...