Проверить два уникальных столбца - PullRequest
2 голосов
/ 13 января 2020

У меня есть модель Market, которая может иметь владельца и много клиентов. Когда клиент регистрируется, я хочу подтвердить, что он уникален на основе email и customer_market_id. Я бы хотел, чтобы клиент мог зарегистрироваться по тому же адресу электронной почты, что и владелец рынка. Разница в том, что владелец рынка имеет null для customer_market_id. Когда я пытаюсь сделать это с моей текущей проверкой, это терпит неудачу.

email => ['unique:users,email,customer_market_id']

Я пробовал этот подход с пакетом uniquewith-validation:

email => ['unique_with:users,customer_market_id']

Если у кого-нибудь есть какие-нибудь предложения, которые будут великолепны! Спасибо!

Ответы [ 4 ]

0 голосов
/ 15 января 2020
 $this->validate($request,[
            'name' => 'required|string|max:255|unique:users',
            'email' => 'required|string|email|max:255|unique:users',
        ]);
0 голосов
/ 13 января 2020
'email' => 'unique:table_name,email_address_column'

уникальный принимает два аргумента. Первый аргумент - имя_таблицы в вашей базе данных, а второй - имя_столбца в таблице.

0 голосов
/ 14 января 2020

Попробуйте следующее в вашей проверке:

'email' => 'unique:users,email | unique:users,customer_market_id'
0 голосов
/ 13 января 2020

Для регистрации различных ролей пользователей вы можете использовать laravel Guard . создать защиту для каждого типа роли, как владелец и клиент, и может легко зарегистрироваться как с одинаковыми идентификаторами. Laravel Страж см. Документацию

...