Reputation: 680
Description
Is there any way to switch the DB environment in Stancl/Tenancy module? As I earlier worked with some other tenancy modules, I use to switch the environment when I want to access some resources from the central domain inside the tenants and vice versa.
Why this should be addedI was trying to get the plans and features for the tenants, and want to get some more data from the central domain (DB). for eg, I have named subscriptions and plans table both for the tenants and central users, when I try to fetch the subscription of the tenant user from the central domain it is returning the data from the tenant DB.
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
}
Upvotes: 4
Views: 5863
Reputation: 1
You may refer to this link Central App
Set up another connections in database.php and use
DB::connection($connectionName)->table('foo')->where(...)
Upvotes: 0
Reputation: 680
It has been fixed in a new release. https://github.com/stancl/tenancy/releases/tag/v3.3.0
$tenant->run(function ($tenant) {
return User::all();
});
tenancy()->central(function ($tenant) {
return User::all();
});
Upvotes: 13