我使用的是Laravel 5.6,我想根据经过身份验证的用户设置默认数据库
就像当user1登录时将DB1设置为默认设置一样,而与user2一样,将databse设置为DB2
有什么建议或其他方式可以做到吗?
谢谢
解决方法:
首先,您可以根据您的用户使用相关值更新连接配置详细信息(我在这里假设默认连接名称为mysql):
// This will overwrite only the values you need updated so you don't have
// to add all of the configuration keys like 'driver', 'charset', etc
config()->set('database.connections.MysqL', array_merge(config('database.connections.MysqL'), [
'database' => 'new_database',
'username' => 'new_username',
'password' => 'new_password',
]));
然后,您只需要重新连接到数据库,它将使用新的配置:
\DB::reconnect('MysqL');
所有这些代码可能最好放在中间件中,因此它会在每次请求时自动运行.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。