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

Laravel:connettersi ai database in modo dinamico

La soluzione più semplice è impostare la configurazione del database in fase di esecuzione. Laravel potrebbe aspettarsi che queste impostazioni vengano caricate da config/database.php file, ma ciò non significa che non puoi impostarli o modificarli in un secondo momento.

La configurazione caricata da config/database.php è memorizzato come database nella configurazione di Laravel. Significato, i connections array all'interno di config/database.php è memorizzato in database.connections .

Quindi puoi facilmente sovrascrivere/modificare queste connessioni in questo modo:

Config::set("database.connections.mysql", [
    "host" => "...",
    "database" => "...",
    "username" => "...",
    "password" => "..."
]);

Da lì in poi, tutti i modelli Eloquent che utilizzano questo mysql la connessione utilizzerà questa nuova configurazione di connessione al database.

Consiglierei di farlo in un fornitore di servizi, se possibile.