Skip to content

A single DB multitenancy package for Laravel based on subdomain routing

License

Notifications You must be signed in to change notification settings

lukapeharda/multitenancy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MultiTenancy

Introduction

MultiTenancy is a Laravel single DB multitenancy package based on subdomain routing.

Installation

Require this package, with Composer, in the root directory of your project.

composer require lukapeharda/multitenancy

Add the service provider to config/app.php in the providers array.

LukaPeharda\MultiTenancy\Providers\ContextServiceProvider::class,

Publish the config file and modify its params to fit your needs and installation.

php artisan vendor:publish --provider="LukaPeharda\MultiTenancy\Providers\ContextServiceProvider"

Usage

Add the LukaPeharda\MultiTenancy\Scopes\Contextable trait to your models that are "tenant" dependable. This trait will automatically load global scope which will filter all your queries by defined tenant key.

Beside adding trait to your models, your model DB schema needs to have the tenant key as its attribute (and most likely as its foreign key).

To disable tenant global scope use withoutGlobalScope builder method:

$model->withoutGlobalScope(\LukaPeharda\MultiTenancy\Scopes\TenantScope::class);

Fetching the current tenant (and all of its attributes) is available through helper function context.

// To fetch entire tenant object
$tenant = context();

// To fetch one of its attribute
$tenantId = context('id');

License

MultiTenancy is open-sourced software licensed under the MIT license

About

A single DB multitenancy package for Laravel based on subdomain routing

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages