我正在尝试创建一个适用于多个客户的系统,每个客户都有自己的数据库,但使用相同的在线系统。
总结是,当用户登录时,我只会选择其公司的数据库,并且只会看到其数据库中的数据。
如果不推荐这种方式,请给我您的反馈。
答案 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');
}
}