Проверка Laravel: проверка наличия в двух таблицах - PullRequest
0 голосов
/ 25 июня 2018

У меня есть следующая проверка, где я пытаюсь проверить электронную почту в двух таблицах:

$validator = Validator::make($request->all(),
[
    'email' => "exists:users,email|exists:user_company,company_email"
]);

Но это работает только для одной таблицы, и это таблица пользователей.

Есть ли что-нибудь вокруг этого?

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

попробуйте так:

public function validator(array $data)
{
    $data = ['email2' => $data['email']];

    $rules = [   
        'email' => 'required|email|max:255|unique:users',
        'email2' => 'exists:user_company,company_email',
    ];

    $messages = [
        'email.unique' => 'This email is already exists in users table',
        'email2.exists' => 'This email is already exists in user_company table',
    ];

    return $validator = Validator::make($data, $rules, $messages);
}

$this->validator($request->all());
0 голосов
/ 25 июня 2018

Существует возможность добавить пользовательские правила проверки в laravel.Прочтите об этом здесь Пользовательские правила Laravel

Например:

$validator = Validator::make($request->all(), [
            'email' => ["exists:users,email", function($attribute, $value, $fail) {
                    /* Custom Validation code */
                },],
        ]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...