Mysql
 sql >> Database >  >> RDS >> Mysql

Connettiti a molti database contemporaneamente in Laravel 5.2

Introduzione - 2 connessioni

Supponendo che tu abbia bisogno di 2 connessioni:predefinito e personalizzato , forniresti la loro configurazione nel tuo config/database.php come al solito, allora hai bisogno di:

>>> 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"

Più connessioni

Sopra puoi vedere cosa deve essere fatto. Nel tuo caso, puoi semplicemente inserire intera connessione config per ogni nuova connessione di cui hai bisogno e funzionerà come previsto:

>>> config(['database.connections.on_the_fly' => [
>>>    'database' => 'provided_on_the_fly',
>>>    ...
>>> ]])
=> null

>>> DB::connection('on_the_fly')->getDatabaseName()
=> "provided_on_the_fly"

Eloquente

Se desideri utilizzare una connessione personalizzata per i tuoi Modelli eloquenti puoi usare SomeModel::on('on_the_fly')->find($id) (modello recuperato istanza utilizzerà la connessione per tutte le operazioni successive)