Einführung - 2 Verbindungen
Angenommen, Sie benötigen 2 Verbindungen:Standard und kundenspezifisch , würden Sie ihre Konfiguration in Ihrer config/database.php
bereitstellen wie üblich, dann brauchen Sie:
>>> DB::connection()->getDatabaseName()
=> "default"
>>> DB::connection('custom')->getDatabaseName()
=> "customized"
// change the config...
>>> config(['database.connections.custom.database' => 'new_customized_db'])
=> null
// ...but once the connection is already open, config change doesn't affect it...
>>> DB::connection('custom')->getDatabaseName()
=> "customized"
// ...so we need to get rid of existing connection completely (reconnect() won't work)
>>> DB::purge('custom')
=> null
>>> DB::connection('custom')->getDatabaseName()
=> "new_customized_db"
Mehr Verbindungen
Oben sehen Sie, was zu tun ist. In Ihrem Fall können Sie einfach gesamte Verbindungskonfiguration einfügen für jede neue Verbindung, die Sie benötigen, und es wird wie erwartet funktionieren:
>>> config(['database.connections.on_the_fly' => [
>>> 'database' => 'provided_on_the_fly',
>>> ...
>>> ]])
=> null
>>> DB::connection('on_the_fly')->getDatabaseName()
=> "provided_on_the_fly"
Eloquent
Wenn Sie eine benutzerdefinierte Verbindung für Ihre Eloquent-Modelle verwenden möchten Sie können SomeModel::on('on_the_fly')->find($id)
verwenden (abgerufenes Modell Instanz verwendet die Verbindung für alle nachfolgenden Operationen)