3 回答
TA贡献1804条经验 获得超2个赞
开发前可以肯定的方向是:
1.前端配置的数据库信息一定是写入数据库中的(反之第一想法是直接修改配置信息,明显不可行)
2.如果可以自己写一套pdo
连接,也可以解决这个问题,是个待选方案,弊端在于放弃laravel强大的ORM
3.如果复用ORM
,laravel 只支持 connection() 方法选择不同数据库,那么我能想到的就是在修改laravel源码,添加一个支持导入配置信息的方法。例如
// $config 是前端选择的数据库的配置信息
DB::config($config)->select();
TA贡献1719条经验 获得超6个赞
1.建一个conf的表 字段可以很简单(id,name,value) 建议名字用大写字母和下划线 例DB_USER_1
2.在公共函数库里写一个方法 只要传入name 就可以获取值
3.后台表单提交后干两件事
一、 存入数据库
二、 生成一个文件 内容就是一个数组
结构和配置文件结构类似就选行
意思只要后台配置改变 文件重新生成
使用的时候 尽量读文件
TA贡献1836条经验 获得超13个赞
先审题:
题主是想把相关的数据库配置信息通过表单存储在一个数据库中,然后通过读取数据库中数据配置信息,然后去实现访问不同数据库的功能,而不是把所有的数据库配置信息预先配置在 config/database.php
中。
如果没有理解错的话,再来解题:
Laravel 数据库信息存储到数据库中
数据库配置信息存储在数据库中,只要按照 Laravel 的数据库配置要求去存储即可,这个随意题主怎么存储,在 config/database.php
中已经有了各类数据库配置的示例。
多数据库连接
在官方文档中有说明用法 $users = DB::connection('foo')->select(...);
看官方文档即可。
把数据库中存储的数据配置信息设置到 Laravel 的 config 中去
- 首先编写自己的
ServiceProvider
- 在
ServiceProvider
boot
方法中添加如下代码。
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//1. get your database config from database.
//Your code.
//2. set database info to laravel database config.
$this->app['config']->set('database.connections.testing', [
'driver' => 'mysql',
'database' => ...
]);
}
没有亲自去实战,提供一种思路,请题主自行实验。
- 3 回答
- 0 关注
- 535 浏览
添加回答
举报