Laravel Packages

Subdomain Multitenency Package for Laravel

Published
Subdomain Multitenency Package for Laravel image

Romega Digital released a package to make it easier to create subdomain-based multitenancy in your Laravel applications:

This package is meant to be a quick and easy way to add multitenancy to your Laravel application. It simply creates models and relationships for Tenants and models. The package identifies incoming traffic by subdomain, and finds a corresponding tenant in the Tenant table. If none are found or the user is not associated with a particular subdomain, the user is met with a 403 error.

Remega’s package provides multitenant support to your models through a trait called HasTenants, and also leverages Spatie’s permissions package for some functionality.

Related: Two Best Laravel Packages to Manage Roles/Permissions

Here’s an example from the readme:

use Spatie\Permission\Traits\HasRoles;
use RomegaDigital\Multitenancy\Traits\HasTenants;
use Illuminate\Foundation\Auth\User as Authenticatable;
 
class User extends Authenticatable
{
use HasTenants, HasRoles;
 
// ...
}

With the HasTenants trait in place, you can get the users associated with a Tenant model:

User::tenants()->get()

And finally here’s how you create tenants:

Tenant::createMany([
[
'name' => 'An Identifying Name',
'domain' => 'tenant1'
],
[
'name' => 'A Second Customer',
'domain' => 'tenant2'
]
]);

Along with this package, there’s an accompanying Nova package called Multitenency Nova Tool to manage the multitenancy functionality in your application.

To learn more about this Multitenancy package, you can check out the source code on GitHub at romegadigital/Multitenancy. To learn how to install and use the package, check out the Multitenency readme file.

See also: Laravel Tenancy – Multi-Tenant Package for Laravel

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
The Laracon Archive image

The Laracon Archive

Read article
Group Adjacent Collection Items in Laravel with chunkBy() image

Group Adjacent Collection Items in Laravel with chunkBy()

Read article
Laravel queue:work Now Prints Why the Worker Stopped image

Laravel queue:work Now Prints Why the Worker Stopped

Read article
Sidecar Brings Statamic's Control Panel to Your Existing Markdown Sites image

Sidecar Brings Statamic's Control Panel to Your Existing Markdown Sites

Read article
Collections chunkBy() and Storage Path Hardening in Laravel 13.30 image

Collections chunkBy() and Storage Path Hardening in Laravel 13.30

Read article
Forte: Parse and Rewrite Laravel Blade Templates image

Forte: Parse and Rewrite Laravel Blade Templates

Read article