【发布时间】:2020-08-19 18:28:45
【问题描述】:
我有一个应用程序,其中包含用于登录用户的一级数据库和用于一个或多个用户的 N 个数据库。 我想在用户登录后更改数据库。 数据库参数存储在用户表中,所以登录后我有这个:
Config::set("database.connections.mysql", [
"host" => "localhost",
"driver" => "mysql",
'default' => 'mysql',
"database" => $dati->db,
"username" => "root",
"password" => ""
]);
DB::reconnect('mysql');
其中 $dati->db 是登录用户的数据库名称。 它仅在当前控制器中有效,但所有其他模型和控制器都没有新的数据库,并为丢失的表返回错误。
如何将新设置传播到所有模型?
提前致谢。
【问题讨论】:
-
一般不建议每个用户拥有 1 个数据库。除非有特定的原因,否则我建议将所有用户放入 1 个具有所需访问控制的数据库中。
-
您好 nigel,非常感谢您的回答,存在误会。一个包含所有用户(权限、级别等)的数据库,每个用户都有一个数据库(两个或多个用户可以拥有相同的数据库)。登录后我想更改数据库连接(参数在用户的数据库中)以连接用户的数据库。