Я хочу получить доступ к отдельной базе данных, основанной на поддомене.
Все остальные настройки остаются прежними: имя пользователя, пароль и т. Д. Необходимо изменить только имя базы данных.
Я добавляю это в файл database.php
'subdomain' => [
'driver' => 'mysql',
'host' => '',
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
Я также создал Middleware
`$subdomain = $request->route()->account;
$customer = Customer::where( 'sub_domain', $subdomain )->first();
if( ! $customer ) {
// account not found, do something else
} else {
Config::set('database.connections.subdomain.host', 'testdomain');
}
return $next($request);`
это в route.php
Route::group(['domain' => $domain, 'middleware' => 'subdomain'],function () {});
Использование protected $connection = 'subdomain';
в модели
в .env Я использую базу данных по умолчанию для проверки имени базы данных клиентов
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ispsoft
DB_USERNAME=root
DB_PASSWORD=
Я получил имя базы данных пользователей поддоменов. Но не подключена база данных sudomain И я не получил значение из базы данных subdomain