Доступ к данным из центральной базы данных внутри домена арендатора и наоборот Stancl / Tenancy

#php #mysql #laravel #multi-tenant

#php #mysql #laravel #многопользовательский

Вопрос:

Описание

Есть ли какой-либо способ переключить среду БД в модуле Stancl / Tenancy? Поскольку я ранее работал с некоторыми другими модулями аренды, я использую для переключения среды, когда я хочу получить доступ к некоторым ресурсам из центрального домена внутри арендаторов и наоборот.

Почему это должно быть добавлено

Я пытался получить планы и функции для арендаторов и хочу получить дополнительные данные из центрального домена (DB). например, я назвал таблицу подписок и планов как для арендаторов, так и для центральных пользователей, когда я пытаюсь получить подписку пользователя-арендатора из центрального домена, он возвращает данные из базы данных арендатора.

 namespace AppHelpers;
use AppModelsSystemAdminSubscription;
 public static function checkTenantPlan()
    {
        // Find the tenant
        // get the tenantId and find that
        $tenant_user_id = tenant()->user_id;
        // Find the subscription of the tenant User
        $subscription = Subscription::where('user_id', $tenant_user_id)
                        ->orderBy('created_at', 'desc')
                        ->first();
        return $subscription->plan(); //returning the data from the current tenant db
        
    }
 

Комментарии:

1. Находятся ли базы данных арендатора и ваша база данных центрального домена на одном сервере MySQL?

2. Да, посмотрите документы stancl / tenancy для получения дополнительной информации.

Ответ №1:

Это было исправлено в новой версии. https://github.com/stancl/tenancy/releases/tag/v3.3.0

 $tenant->run(function ($tenant) {
    return User::all();
});

tenancy()->central(function ($tenant) {
    return User::all();
});
 

Комментарии:

1. Это работает для central domain , но не для арендатора. Я получаю сообщение об ошибке "Database connection [tenant] not configured." , есть идеи?

2. Вы пытаетесь получить данные внутри арендатора или центрального уровня?