diff --git a/docs/source/v2/middleware-configuration.blade.md b/docs/source/v2/middleware-configuration.blade.md index 09a695a..2f810ea 100644 --- a/docs/source/v2/middleware-configuration.blade.md +++ b/docs/source/v2/middleware-configuration.blade.md @@ -7,6 +7,32 @@ section: content # Middleware Configuration {#middleware-configuration} +## Header or query parameter based identification {#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: + +```php +\Stancl\Tenancy\Middleware\InitializeTenancyByRequestData::class +``` + +To customize the header, query parameter, and `onFail` logic, you may do this in your `AppServiceProvider::boot()`: + +```php +// 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 {#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: ```php @@ -17,4 +43,4 @@ $this->app->bind(InitializeTenancy::class, function ($app) { // return redirect()->route('foo'); }); }); -``` \ No newline at end of file +```