【问题标题】:Reset (nullify) Laravel/Eloquent connection重置(无效)Laravel/Eloquent 连接
【发布时间】: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 断开数据库连接并连接到同一请求中的另一个?

【问题讨论】:

    标签: laravel-5 eloquent lumen


    【解决方案1】:

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

    基本思想是您不(不能?)覆盖配置。相反,您可以即时创建一个新配置,并将其设置为默认数据库连接(让您自己的生活更轻松)。

    【讨论】:

    • 今天仍然适用吗? 4年后有什么建议吗?
    • 我没有什么新鲜事。一旦我得到一些工作(了解它是如何工作的),我就会继续前进。我什至不记得这个项目! :-)
    猜你喜欢
    • 2023-03-07
    • 2014-10-18
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 2019-09-06
    • 2018-08-07
    • 2019-12-06
    相关资源
    最近更新 更多