Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 5.x » Переключение подключений к БД на лету » 20.07.2018 14:53:58

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

#2 Laravel 5.x » Переключение подключений к БД на лету » 18.07.2018 16:32:58

Fomich2
Ответов: 3

Приветствую! Имеется изменяемая на стороне информация с подключениями (разные сервера, пароли и прочее), пытаюсь изменить подключение в config

 'connections' => [
  'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            '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' => false,
            'engine' => null,
        ]
]

Меняю конфиг

public function config($dbname, $dbpass, $dbhost, $username){
        $config = Config::get('database.connections.mysql');
        $config['database'] = $dbname;
        $config['password'] = $dbpass;
        $config['host'] = $dbhost;
        $config['username'] = $username;
        Config::set('database.connections.mysql', $config);
}

Но запрос к DB::select("запрос"); после переподключения все равно обращается к старым параметрам, а нужно к новым.При этом возврат Config::get('database.connections.mysql') после переподключения дает нужные значения.

Подвал раздела