php - Laravel 为整个项目设置动态配置变量
问题描述
我正在使用 Laravel 开发 CMS 来管理其他数据库。现在我使用 config 函数来创建一个临时配置变量。我为外部数据库执行此操作,它也可以工作。
这就是我的代码现在的样子:
$website = Website::where('hash', '=', $hash)->first();
config(['database.connections.extern.host' => $website->db_host]);
config(['database.connections.extern.database' => $website->db_name]);
config(['database.connections.extern.username' => $website->db_username]);
config(['database.connections.extern.password' => $website->db_password]);
现在的问题是,无论我想在哪里调用外部数据库,我都应该这样做。这当然不方便。
有谁知道这个“问题”的解决方案?
解决方案
您可以循环浏览网站模型并在启动时设置配置文件,并使用网站的哈希作为键:
foreach (Website::all() as $website) {
config(['database.connections.'.$website->hash.'.host' => $website->db_host]);
...
}
然后使用网站哈希连接到相关数据库:
DB::connection($hash) ...
无论如何,如果它们位于不同的主机上,这不是管理其他数据库的好方法。你最好使用网络服务技术来做这样的工作。连接到外部数据库可能不安全。
推荐阅读
- docker - 如何在 Tomee docker 容器上启用 https?
- jquery - 加载微调器 typeaheadjs 猎犬标签输入
- sql - 我的删除语句不起作用(使用 oracle 11g)
- android - 尝试加载图像时出现错误
- ios - Apple:应用内购买订阅和服务器到服务器通知
- angular - node_modules/@types/pdfjs-dist/index.d.ts(63,39) 中的错误:错误 TS2304:找不到名称“未知”。对于 Angular 应用程序
- tizen - 访问 Tizen wareable 上的系统图标
- python-3.x - 我在 youtube-dl 选项中遇到错误,提示“语法无效”
- python - Python循环并追加到字符串
- uwp - 我正在使用 UWP winUI,我试图动态切换 tabView 选项卡上的内容但失败了