我正在开发一个多租户用途的应用程序,为此,我使用了Orchestral / Tenanti,但我遇到了以下问题。
我已经执行了多数据库连接设置所需的一些步骤。
问题出现在数据库连接解析器步骤中。在我的中间件中,我正在定义要使用的连接(我不发布代码因为与Tenanti使用无关),这是正确设置的。
我的解析器代码是:
public function boot()
{
Tenanti::connection('tenants', function (User $entity, array $template) {
$template['database'] = "db_{$entity->getKey()}";
return $template;
});
}
此代码位于我的AppServiceProvider上。但我使用的数据库没有从我的解析器中正确设置,抛出以下错误:
ErrorException in MySqlConnector.php line 110:
Undefined variable: database
显然,错误意味着没有设置数据库。 有人可以帮忙吗?提前谢谢。
答案 0 :(得分:0)
经过多次测试后,我没有使用Tenanti找到解决方案,而是使用Config类设置要使用的数据库,并在database.php上维护我的租户配置。
Config::set('database.connections.tenants.database', 'legal_'.$request->route()->parameter('account'));
Config::set('database.default', 'tenants');