sql >> Base de Datos >  >> RDS >> Mysql

Laravel:conéctate a bases de datos dinámicamente

La solución más simple es establecer la configuración de su base de datos en tiempo de ejecución. Laravel podría esperar que estas configuraciones se carguen desde config/database.php archivo, pero eso no significa que no pueda configurarlos o cambiarlos más adelante.

La configuración cargada desde config/database.php se almacena como database en la configuración de Laravel. Es decir, las connections matriz dentro de config/database.php se almacena en database.connections .

Así que puedes anular/cambiar fácilmente estas conexiones de esta manera:

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

De ahí en adelante, cualquier modelo de Eloquent que use este mysql la conexión utilizará esta nueva configuración de conexión de base de datos.

Recomendaría hacer esto en un proveedor de servicios si es posible.