gpt4 book ai didi

php - 在 Laravel 5.2 中同时连接到多个数据库

转载 作者:行者123 更新时间:2023-11-29 07:12:52 25 4
gpt4 key购买 nike

我已经找到了很多方法来更改互联网上 config/database.php 文件的默认连接,但我不想要 Multi-Tenancy 应用程序,我需要同时连接到很多数据库,而且我缺乏使代码正常运行的经验。到目前为止,我已经在我的默认数据库中创建了模型 Controller 和名为 DATABASES 的表,我需要一直在其中连接,我在其中存储应用程序中的配置选项,现在我需要设置这些连接,但我无法做到这一点。

我阅读了所有相关内容on the fly database connectionmultidatases connections ,但我无法弄清楚。

我的逻辑是这样的:

  1. 发送新数据库 I 的配置数据选项到我的(默认)数据库的表数据库中。
  2. 通过复选框启用此数据库。
  3. 显示来 self 的默认数据库和新启用的连接的用户。
  4. 禁用第二个或第三个连接,但始终可以访问我的默认数据库。

我不需要代码,我需要指导,希望有人理解我需要做什么!

最佳答案

简介 - 2 个连接

假设您需要 2 个连接:默认自定义,您可以像往常一样在 config/database.php 中提供它们的配置,那么你需要:

>>> DB::connection()->getDatabaseName()
=> "default"

>>> DB::connection('custom')->getDatabaseName()
=> "customized"

// change the config...
>>> config(['database.connections.custom.database' => 'new_customized_db'])
=> null

// ...but once the connection is already open, config change doesn't affect it...
>>> DB::connection('custom')->getDatabaseName()
=> "customized"

// ...so we need to get rid of existing connection completely (reconnect() won't work)
>>> DB::purge('custom')
=> null

>>> DB::connection('custom')->getDatabaseName()
=> "new_customized_db"
<小时/>

更多连接

在上面您可以看到需要做什么。在您的情况下,您只需为您需要的每个新连接添加整个连接配置,它就会按预期工作:

>>> config(['database.connections.on_the_fly' => [
>>> 'database' => 'provided_on_the_fly',
>>> ...
>>> ]])
=> null

>>> DB::connection('on_the_fly')->getDatabaseName()
=> "provided_on_the_fly"
<小时/>

Eloquent

如果您想为 Eloquent 模型使用自定义连接,您可以使用 SomeModel::on('on_the_fly')->find($id) (获取模型实例将使用该连接进行所有后续操作)

关于php - 在 Laravel 5.2 中同时连接到多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39001288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com