Ricardo
Ricardo
Laravel
Comparte:

BD dinámica

Quiero realizar la conexión a BD según el usuario que ingrese y se me ocurren dos soluciones:
1.       Crear un middleware que se encargue de seleccionar la BD, hasta aquí bien, la única pega es que model binding no funciona, puedo o bien dejar de usuario o sobreescribir resolveRouteBinding y duplicar la lógica del middleware, no veo lo de duplicar y supongo que sería mejor dejar de usar model binding.
 
2.       Crear un nuevo modelo, que sobreescribe getConnectionName
 
Aquí dejo un repositorio de cómo funcionaría uno y otro caso resumiendo el problema: 
Por simplificar, toda la lógica está web.php.
Para entender cómo funciona, ejecutar primero una conexión y luego las opciones A, B y C. Luego seleccionar la segunda conexión y evaluar de nuevo A, B y C.
¿Alguna solución mejor?
Ricardo
Ricardo (130 xp)
La opción 2, por matizar, es crear un modelo, DynamicModel, que sobreescribe getConnectionName, y en el ejemplo que envío PostB extiende de DynamicModel. 
1