Laravel Orchid

The instruction is written for a newly installed Orchid platform, it is proposed to use the platform as a central application and the tenant app.

Both in the central app and the tenant app

Laravel Orchid has already been installed according to the documentation Orchid. All the steps have also been completed Quickstart Tutorial.

  • To use Orchid both in the central & tenant parts you need to enable Universal Routes.
  • Add the tenancy middleware to your config\platform.php

    'middleware' => [
        'public'  => ['web', 'universal', \Stancl\Tenancy\Middleware\InitializeTenancyByDomain::class],
        'private' => ['web', 'platform', 'universal', \Stancl\Tenancy\Middleware\InitializeTenancyByDomain::class],
    ],
    
  • Add a route to routes\platform.php

    php Route::screen('/', PlatformScreen::class) ->name('platform.index') ->breadcrumbs(function (Trail $trail) { return $trail->push(__('Home'), route('platform.index')); });

  • In the file app\Providers\RouteServiceProvider.php, if necessary, change the path to the "home" route for your central application. By default for Orchid it will be 'admin/main'

    public const HOME = 'admin/main';
    
  • Tenant Routes routes\tenant.php

    php Route::middleware([ 'web', 'platform', InitializeTenancyByDomain::class, PreventAccessFromCentralDomains::class, ])->prefix(Orchid\Platform\Dashboard::prefix('/'))->group(function () { Route::get('/', function () { return 'This is your multi-tenant application. The id of the current tenant is ' . tenant('id'); }); });