Как соединить несколько баз данных в laravel 5.5? - PullRequest
0 голосов
/ 09 октября 2019

Я использую Laravel 5.5 и MySQL и хочу подключиться к нескольким базам данных. Я прочитал много статей, и большинство из них предлагают сначала установить <code>config/database.php, а в контроллере использовать следующий код для подключения к базе данных:

$ result = DB :: connection ('mysql2«) -> выберите ($);

Это работает для меня, но у меня есть несколько баз данных, и я сохранил хост и порт в основной базе данных.

можно ли запрашивать список баз данных и информацию о соединении избазы данных, а затем положить его в <code>config/database.php?

Или мне нужно добавить список базы данных и информацию о соединении вручную?

Ответы [ 2 ]

0 голосов
/ 09 октября 2019

Я нашел решение. Поделись ею со всеми:)

Сначала сделай Connection модель.

Затем добавь код в app/Providers/AppServiceProvider.php

//connections
if (\Schema::hasTable('connections')) {
        $connections = \App\Models\Connection::all();
        $db = \Config::get('database.connections');
        foreach ($connections as $connection)
        {
            $db['cdb_'.$connection->id] = [
                    'driver'    => 'mysql',
                    'host'      => $connection->db_host,
                    'port'      => $connection->db_port,
                    'database'  => $connection->db_database,
                    'username'  => $connection->db_user,
                    'password'  => $connection->db_pass,
                    'charset'   => 'utf8',
                    'collation' => 'utf8_unicode_ci', //utf8_unicode_ci
                    'prefix'    => '',
                    'strict'    => false,
        ];
    }
    \Config::set('database.connections',$db);
}else{
    \Config::set('database.connections',[]);
}

Schema::defaultStringLength(191); 
0 голосов
/ 09 октября 2019

Я думаю, что вы можете обратиться к этому Как сделать запрос к базе данных внутри файла конфигурации? где вы можете запросить базу данных и поместить ее в свой файл конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...