根据用户登录动态更改数据库
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(...);
【讨论】:
以上是关于根据用户登录动态更改数据库的主要内容,如果未能解决你的问题,请参考以下文章