当前位置: 首页 > 面试题库 >

Laravel:动态连接数据库

阳德润
2023-03-14
问题内容

我正在Laravel
5(.1)中创建一个应用程序,在该应用程序中需要连接到不同的数据库。唯一的问题是,它不知道必须连接到哪个数据库,因此无法在config中使用database.php。控制器负责使用动态给定的连接详细信息进行连接。

如何建立与数据库的新连接,包括使用DB类?(或者这可能)

提前致谢!


问题答案:

最简单的解决方案是在运行时设置数据库配置。Laravel可能希望从config/database.php文件中加载这些设置,但这并不意味着您以后无法设置或更改它们。

从中加载的配置config/database.php存储database在Laravel配置中。意思是,connections内部数组config/database.php存储在database.connections

因此,您可以像这样轻松地覆盖/更改这些连接:

Config::set("database.connections.mysql", [
    "host" => "...",
    "database" => "...",
    "username" => "...",
    "password" => "..."
]);

从那时起,任何使用此mysql连接的Eloquent模型都将使用此新的数据库连接配置。

如果可能,我建议在服务提供商中进行此操作。



 类似资料:
  • 我正在构建一个需要连接2个数据库的应用程序。第一个是静态的,另一个是动态的。config/database.php类似于 模型代码就像 如果我提供静态连接详细信息,我可以连接多个数据库,但如果我提供动态连接详细信息,如 或 动态连接多个数据库而不影响应用程序性能的最佳方法是什么?

  • 问题设置基于Web服务(Spring/Java、Tomcat7和MySql),其中每个用户都有自己的数据库,因此每个请求都需要自己的连接。由于所有数据库都是在运行时动态创建的,因此在启动之前静态配置它们不是一个选项。 为了优化数据库连接使用,数据库连接池的实现将是非常好的,对吗? 使用Java/Spring:如何为动态数据库创建连接池?我有点惊讶于这里缺少干净的选择 问题:Tomcat的连接池(以

  • 前言 数据库是 laravel 及其重要的组成部分,大致的讲,laravel 的数据库功能可以分为两部分:数据库 DB、数据库 Eloquent Model。数据库的 Eloquent 是功能十分丰富的 ORM,让我们可以避免写繁杂的 sql 语句。数据库 DB 是比较底层的与 pdo 交互的功能,Eloquent 的底层依赖于 DB。本文将会介绍数据库 DB 中关于数据库服务的启动与连接部分。

  • 我是拉威尔的新手,目前正在拉威尔的一个项目中工作。 当我在我的文件中使用'php工匠服务'来检查它是否工作/localhost,我得到了这个错误: (1/1)HttpException数据库连接失败! 在应用中。php第1014行 应用时- 在ScriptMint中中止时('399','数据库连接失败!')。php第31行 在ScriptMint- 在管道上- at XSP保护- 在管道上- 在T

  • 我使用Laravel 5和我的数据库连接有问题: 这是我的database.php文件: 这是我的. env文件: DB_HOST=localhost DB_数据库=我的_场景 DB_USERNAME=root DB_PASSWORD=null 然而,当我运行“php artisan migrate”时,我得到了一个错误 [PDOException]SQLSTATE[HY000][1049]未知数

  • 当用户是管理员角色时,如何更改数据库连接?管理数据库包含其他用户不能访问的信息,并且要求数据库必须位于自己的服务器上。我目前有单独的管理员连接配置。 我想,没有硬编码是在应用中,所以如何可以拉威尔做开关时,必要的?谢谢你的帮助。