如何更改OctoberCMS/Laravel中的数据库连接mid代码

如何更改OctoberCMS/Laravel中的数据库连接mid代码,laravel,eloquent,octobercms,Laravel,Eloquent,Octobercms,我正在尝试创建一个可以为多个客户工作的系统,每个客户都有自己的数据库,但使用相同的在线系统 概括地说,当用户登录时,我只会选择其公司的数据库,并且只会看到其数据库中的数据 如果不推荐这种方式,请给我您的反馈。使用Configfacade更改连接。您需要确保使用公共数据库(即用户身份验证)的模型明确设置了其数据库连接,以便配置中的动态更改不会影响这些模型 下面是一个如何实现这一点的示例 在自定义插件的plugin.php文件中: use Config; use Backend\Models\Use

我正在尝试创建一个可以为多个客户工作的系统,每个客户都有自己的数据库,但使用相同的在线系统

概括地说,当用户登录时,我只会选择其公司的数据库,并且只会看到其数据库中的数据


如果不推荐这种方式,请给我您的反馈。

使用
Config
facade更改连接。您需要确保使用公共数据库(即用户身份验证)的模型明确设置了其数据库连接,以便配置中的动态更改不会影响这些模型

下面是一个如何实现这一点的示例

在自定义插件的plugin.php文件中:

use Config;
use Backend\Models\User;
use System\Classes\PluginBase;

class Plugin extends PluginBase
{
    public function register()
    {
        User::extend(function($model) {
            $model->setConnection('my_default_connection');
        });

        Config::set('database.default', 'this_companies_connection');
    }
}

哪个数据库将保存
用户
数据?与具有个人用户信息和登录凭据的数据一样?看看this@thisiskelvin是的,我将创建一个主数据库,其中包含所有用户及其所属数据库的名称to@JasperHelmich非常感谢你@luckeTowers是一种允许我动态设置连接名称及其参数的方法吗?cuz使用
Config::set('database.default','this_companys_connection')
假设我在config.php中有连接详细信息,其中包含所有数据库的连接参数,但实际上我只将数据库名称保存在每个用户所在公司的记录中belongsTo@AhmedAlbarody是的,看。在任何地方使用新定义的连接之前,您只需要这样做。