【发布时间】:2017-01-02 11:22:02
【问题描述】:
我第一次使用 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 断开数据库连接并连接到同一请求中的另一个?
【问题讨论】: