如何在OctoberCMS / Laravel中更改数据库连接中间代码

时间:2018-12-17 13:45:28

标签: laravel eloquent octobercms

我正在尝试创建一个适用于多个客户的系统,每个客户都有自己的数据库,但使用相同的在线系统。

总结是,当用户登录时,我只会选择其公司的数据库,并且只会看到其数据库中的数据。

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

1 个答案:

答案 0 :(得分:1)

使用Config门面更改连接。您将需要确保使用通用数据库(即用户身份验证)的模型具有明确设置的数据库连接,以便配置中的动态更改不会影响这些模型。

这是一个如何完成此操作的示例。

在自定义插件的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');
    }
}