【发布时间】:2018-08-08 13:09:41
【问题描述】:
我有两个数据库。第二个数据库是动态变化的,即每个客户端都有自己的数据库,因此数据库名称和密码不同,但所有客户端的架构都是相同的。所以我有两个模型组,第一个用于第一个数据库,第二个用于第二个数据库。实际上,第二个模型组必须能够查询客户端数据库而不是默认数据库
所以我想动态设置默认数据库连接。Config::Set() 将只为一个请求执行此操作。我希望它用于后续的每个请求。
我使用 Laravel 框架,你知道一个干净的解决方案可以解决我的问题并帮助其他感兴趣的人
感谢大家的帮助
【问题讨论】:
-
您可以更新config的值。 laravel.com/docs/5.6/… 或将其写入文件并访问它。
-
一种方法是多次部署应用程序并为每个客户端保留单独的
.env文件。对于一个模型组,在每个模型上使用第二组的默认连接将protected $connection = 'seconddb';并不断更改seconddb的连接参数在.env文件中。缺点是不同的域/子域 -
@SougataBose 是的,我设置了配置,它只会为一个请求执行。
-
@MichalBieda 我也有同样的想法,但这不是一个好的解决方案,因为如果我有很多客户,我应该做很多操作,想象一下如果我必须更新应用程序,我会花很多时间很多时间
-
我建议您阅读以下
Laravel doc以了解请求的工作原理。 laravel.com/docs/5.6/lifecycle
标签: php mysql database laravel laravel-5.6