Der Fehler liegt daran, dass Ihnen der driver
fehlt in Ihrer Konfiguration.
Ein besserer Weg, die Verbindung zu ändern, wäre, Ihre neue Verbindung in der Datenbankkonfigurationsdatei zu registrieren und die Verbindung zur Laufzeit zu ändern.
'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' => true,
'engine' => null,
],
'newConnection' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => 'db2',
'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,
],
]
Jetzt können Sie Ihre Verbindung mit dem Namen ändern, mit dem Sie Ihre neue Verbindung definiert haben.
Standardverbindung ändern
Config::set('database.default', 'newConnection');
DB::reconnect('newConnection');
oder ändern Sie die Verbindung für einen Abfragegenerator
DB::connection('newConnection')->table('articles')->insert($articles);
Wenn Sie Eloquent-Modelle verwenden, können Sie die mit dem Modell verknüpfte Standardverbindung mithilfe von connection
festlegen Eigenschaft
protected $connection = 'newConnection';
oder zur Laufzeit durch Aufruf von setConnection
ändern
(new User)->setConnection('newConnection');
Wenn Sie die aktuellen Verbindungsdaten ändern möchten, können Sie diese nach Belieben ändern
Config::set('database.connections.mysql.database', 'db2');
und nach Änderungen müssen Sie anrufen
DB::reconnect('mysql');
oder
DB::purge('mysql');