tenancy-docs/docs/source/v2/middleware-configuration.blade.md
2020-03-17 19:29:01 +01:00

1.7 KiB

title description extends section
Middleware Configuration Middleware Configuration.. _layouts.documentation content

Middleware Configuration

Header or query parameter based identification

To identify tenants using request headers or query parameters, you may use the InitializeTenancyByRequestData middleware.

Create a central route (don't apply the tenancy middleware group on it and don't put it into routes/tenant.php) and apply this middleware on the route:

\Stancl\Tenancy\Middleware\InitializeTenancyByRequestData::class

To customize the header, query parameter, and onFail logic, you may do this in your AppServiceProvider::boot():

// use Stancl\Tenancy\Middleware\InitializeTenancyByRequestData::class;

$this->app->bind(InitializeTenancyByRequestData::class, function ($app) {
    return new InitializeTenancyByRequestData('header name', 'query parameter', function ($exception) {
        // return redirect()->route('foo');
    });
});

To disable identification using header or query parameter, set the respective parameter to null.

Customizing the onFail logic

When a tenant route is visited and the tenant can't be identified, an exception is thrown. If you want to change this behavior, to a redirect for example, add this to your app/Providers/AppServiceProvider.php's boot() method:

// use Stancl\Tenancy\Middleware\InitializeTenancy;

$this->app->bind(InitializeTenancy::class, function ($app) {
    return new InitializeTenancy(function ($exception) {
        // return redirect()->route('foo');
    });
});