根据用户登录动态更改数据库

Posted

技术标签:

【中文标题】根据用户登录动态更改数据库【英文标题】:Change database dynamically according to user login 【发布时间】:2022-01-18 16:16:07 【问题描述】:

目前我在 Laravel 8 作为后端和 Vuejs 2 作为前端创建 SaaS 在线库存软件。

当用户登录根据用户电子邮件从主数据库获取数据库名称和数据库密码时完成。

现在我正在尝试更改数据库,但数据库并未从所有模型和控制器的主数据库更改为用户数据库。

我的问题是如何根据用户登录更改数据库连接?

【问题讨论】:

也许考虑使用来自 Spatie 的 multitenancy package。它提供了这样的功能,而无需您自己编写代码。 这能回答你的问题吗? Laravel: connect to databases dynamically 【参考方案1】:

laravel8在你的config/database.php配置文件中定义了多个连接,你可以通过DB门面提供的连接方式来访问每个连接。

use Illuminate\Support\Facades\DB;

$users = DB::connection('anther-db')->select(...);

【讨论】:

以上是关于根据用户登录动态更改数据库的主要内容,如果未能解决你的问题,请参考以下文章

根据登录用户在运行时更改数据库架构

根据动态字段更改 url

用户登录后,使用我的个人资料选项卡动态更改登录选项卡

业务逻辑:七完成系统菜单根据登录人动态展示

动态添加数据源,根据用户登录切换数据库.编程式Spring事务.

我想根据登录用户更改主页菜单。我如何在 Spring MVC 中做到这一点?