Я разрабатываю мультитенантное приложение на php с использованием Laravel 5.7.28, Hyn / Multi-tenant 5.3 в локальной среде хоста. Соединение для аренды осуществляется с использованием промежуточного программного обеспечения forcece.tenancy согласно старому учебнику. Соединения с базой данных (config / database.php), как показано ниже: (пропущены нежелательные строки)
'connections' => [
'sqlite' => [
'driver' => 'sqlite',
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
'system' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'tenancy'),
'username' => env('DB_USERNAME', 'xxxx'),
'password' => env('DB_PASSWORD', 'xxxxx'),
......
],
'tenant' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', '914fb6c2sx'),
'username' => env('DB_USERNAME', 'xxxx'),
'password' => env('DB_PASSWORD', 'xxxxx'),
......
],
'tenant' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', '7239b4a43a'),
'username' => env('DB_USERNAME', 'xxxx'),
'password' => env('DB_PASSWORD', 'xxxx'),
......
],
У меня есть сеансы настройки (config / sessions.php)
/*
|----------------------------------------
| Session Cookie Domain
|----------------------------------------
|
*/
'domain' => env('SESSION_DOMAIN', '.abcd.in'),
Теперь я могу войти точно так же, используя ту же таблицу пользователей доменов. Если я вхожу в одно подключение арендатора, я могу перейти к подключению второго домена арендатора для той же роли без входа в систему и наоборот, то есть, если я выхожу из одного домена, я выхожу из второго домена. Я также использую пакет Spatie / role-permissions. Я думаю, что я ошибаюсь где-то в настройке соединения арендатора и / или обработке сеанса. Мой код выполняется хорошо.
Мое первое сомнение в проблеме - это подключение арендатора, показанное выше. Во всех арендаторах я использую имя подключения как «арендатор». Является ли соединение арендатора в hyn / multi-tenant массивом? Я имею в виду, что он ищет правильное имя базы данных домена в массиве подключения арендатора? Этот аспект мне не понятен. Если я ошибочно назвал все подключения арендатором, то я попытался назвать арендаторов как «tenant1», «tenant2», ... (эта установка не сработала). Как можно настроить сеансы в этом Hyn / Multi-Tenancy. Я пытаюсь использовать redis, но не знаю, как настроить redis в localhost.