laravel 动态更改数据库连接

wswtfjt7  于 2023-01-21  发布在  其他
关注(0)|答案(1)|浏览(275)

我想使用Laravel制作一个应用程序。这个应用程序有2个数据库(生产和沙箱)。当我们登录时,我们可以使用下拉菜单更改生产或沙箱。我的问题是:
1.如何做到这一点?
1.我必须把表用户放在哪里?其中一个数据库还是创建第三个数据库?表关系如何?

ars1skjm

ars1skjm1#

1.您可以使用中间件将config设置为会话变量,例如

config(['database.default' => Session::get('db_to_use')]);

1.将所有用户保存在一个表中,然后在User模型中设置连接,如下所示

/**
 * The database connection that should be used by the model.
 *
 * @var string
 */
protected $connection = 'prod';

(from https://laravel.com/docs/9.x/eloquent#database-connections)

然而

我的两分钱:
这看起来很危险,因为对生产的更改是如此容易访问。我会保持数据库的分隔超过一个下拉列表。
例如,您正在对沙盒站点进行更改,并打开一个新选项卡,从下拉菜单切换到生产,并进行其他更改。然后,您返回到原始选项卡,看到下拉菜单显示“沙盒”,并进行一些更改,但 * 啊哈 *,您删除了某人今天到期的报告。

相关问题