Проверка запроса Laravel с настраиваемым подключением арендатора на лету - PullRequest
1 голос
/ 27 июня 2019

Я создаю приложение SaaS с несколькими базами данных, и подключение к базе данных устанавливается на лету в соответствии с пользователем, вошедшим в систему. Вы можете увидеть мою проблему и решение здесь назад, когда япытался выяснить, как это сделать.

Моя проблема сейчас заключается в использовании функции $request->validate с функциями unique и exists.

В документации сказано, что мы можем установитьПользовательское соединение с базой данных, выполнив что-то вроде:

'email' => 'unique:connection.clients,email'

Но это заставляет меня создавать свои соединения в файле config\database.php, и я не хочу этого делать.

В настоящее время, если я делаю:

$request->validate(['email' => 'required|unique:clients,email']);

Я получил сообщение об ошибке:

Базовая таблица или представление не найдено: 1146 Таблица 'mydb_admin.clients'

Что правильно, поскольку в моей базе данных администратора нет таблицы clients.Так как я могу, используя имеющуюся у меня систему, использовать функцию $request->validate с моими дочерними базами данных?

1 Ответ

0 голосов
/ 27 июня 2019

Вы можете сделать это следующим образом, поскольку вы уже устанавливаете соединение tenant в промежуточном программном обеспечении:

$request->validate([
    'email' => 'required|unique:tenant.clients'
]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...