特南蒂 "Undefined variable: Database"

Tenanti "Undefined variable: Database"

我正在为多租户开发一个应用程序,为此,我使用了 Orchestral/Tenanti 但我遇到了以下问题。

我已经执行了多数据库连接设置的一些必需步骤。

  1. 多个数据库的配置租户驱动程序:在我的 tenanti.php
  2. 设置默认数据库连接:在我的Tenant.php中间件
  3. 我的租户连接的定义:在我的 config/database.php

问题出现在数据库连接解析器步骤上。在我的中间件中,我定义了正确设置的要使用的连接(我没有 post 代码,因为它与 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

很明显错误意味着数据库没有设置。 有人可以帮忙吗?提前致谢。

经过多次测试,我没有找到使用 Tenanti 的解决方案,而是使用 Config class 设置要使用的数据库,并在 database.php 上维护我的租户配置。

Config::set('database.connections.tenants.database', 'legal_'.$request->route()->parameter('account'));
Config::set('database.default', 'tenants');