tenancy-docs/source/docs/v3/integrations/pulse.blade.md
2024-12-23 20:49:12 +01:00

1 KiB

title extends section
Laravel Pulse integration _layouts.documentation content

Laravel Pulse

To run Laravel Pulse in the main application, set the PULSE_DB_CONNECTION in the Pulse configuration file to point to the central database connection.

If you need to resolve the user from the tenant database, you should create a custom user resolver that implements the ResolvesUsers interface.

class TenantUserResolver implements ResolvesUsers
{
    public function key($user): int|string|null
    {
        return implode(':', [tenant()->name, $user->name]);
    }

    public function load(Collection $keys): self
    {
        return $this;
    }

    public function find(int|string|null $key): object
    {
        [$tenant, $user] = explode(':', $key);

        return (object) [
            'name'  => $user,
            'extra' => $tenant,
        ];
    }
}

Next, register this resolver in the AppServiceProvider:

$this->app->singleton(ResolvesUsers::class, TenantUserResolver::class);