重置(无效)Laravel / Eloquent连接

时间:2016-08-25 21:48:06

标签: laravel-5 eloquent lumen

我第一次使用Lumen和Eloquent构建API。我需要在一个请求中跨多个数据库查询同一个表。我使用的算法如下:

foreach($db in $dbs) {
   config(['database.connections.clientdb.database' => $db]); 
   $count = MyModel->all()->count()
   $myArray[] = $count
}

不是获取不同值的数组,而是始终相同;从第一个数据库连接生成的值。

由于第一个数据库不是已配置的数据库,因此我知道config命令有效(至少一次)。我验证了数据库名称在每次迭代时都会发生变化。我(故意)不使用缓存。我使用$mymodel = new MyModel('$db')并在构造函数中执行模型setConnection(),然后设置$mymodel = null$count的值永远不会改变。

猜测数据库连接没有被释放。如何让Lumen / Laravel / Eloquent拆除数据库连接并连接到同一请求中的另一个连接?

1 个答案:

答案 0 :(得分:0)

我在this posting的帮助下完成了它。

基本思路是你不能(不能?)覆盖配置。相反,您可以动态创建新配置(为了让自己轻松生活)将其设置为默认数据库连接。