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, $request, $next) {
// return redirect()->route('foo');
});
});