tenancy-docs/source/docs/v3/integrations/livewire.blade.md
kaisersly 4489c4f08e
Update integrations/livewire.blade.md
I made some minor changes to @FelipeVeiga proposal and added them to the documentation.

https://github.com/archtechx/tenancy/issues/628#issuecomment-1161863700
2022-09-26 10:19:54 +02:00

1.6 KiB

title extends section
Livewire integration _layouts.documentation content

Livewire

Tenancy by domain

Open the config/livewire.php file and change this:

'middleware_group' => ['web'],

to this:

'middleware_group' => [
    'web',
    'universal',
    InitializeTenancyByDomain::class, // or whatever tenancy middleware you use
],

(Don't forget to import the middleware class.)

Now you can use Livewire both in the central app and the tenant app.

Also make sure to enable [universal routes]({{ $page->link('features/universal-routes') }}).

And if you're using file uploads, read the [Real-time facades]({{ $page->link('realtime-facades') }}) page of the documentation. Livewire uses real-time facades in the uploading logic.

Tenancy by path

Open the config/livewire.php file and change this:

'middleware_group' => ['web'],

to this:

'middleware_group' => [
    'web',
    InitializeTenancyByPath::class,
],

(Don't forget to import the middleware class.)

Open the config/livewire.php file and add this:

use Livewire\Controllers\HttpConnectionHandler;

Route::group([
    'prefix' => '/{tenant}',
    'middleware' => [
        'web',
        InitializeTenancyByPath::class,
    ],
], function () {
    Route::post('livewire/message/{name}', [HttpConnectionHandler::class, '__invoke']);
});

Finally, open the blade file where the @livewireScripts directive is, and add:

@livewireScripts
<script>
    window.livewire_app_url = '{{ tenant()->id }}';
</script>

Now you can use Livewire both in the central app and the tenant app.