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

Описание

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

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

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

namespace App\Helpers;
use App\Models\System\Admin\Subscription;
 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
        
    }

Базы данных арендаторов и ваша центральная база данных домена находятся на одном и том же сервере MySQL?

O. Jones 20.12.2020 14:53

Да, дополнительную информацию можно найти в документации по stancl/tenancy.

cptiwari20 24.12.2020 12:47
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout.
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout.
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для...
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
3
2
2 939
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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();
});

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

pasanjg 09.01.2022 02:01

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

cptiwari20 29.01.2022 17:36

Другие вопросы по теме