mirror of
https://github.com/stancl/tenancy-docs.git
synced 2025-12-12 10:14:03 +00:00
1.6 KiB
1.6 KiB
| title | extends | section |
|---|---|---|
| Integration with Spatie packages | _layouts.documentation | content |
Integration with Spatie packages
laravel-activitylog
Note: Activity's subject_id has to be an integer. E.g., to use the LogsActivity trait on a model, the model's ID has to be an integer.
For the tenant app:
- Set the
database_connectionkey inconfig/activitylog.phptonull. This makes activitylog use the default connection. - Publish the migrations and move them to
database/migrations/tenant. (And, of course, don't forget to runartisan tenants:migrate.)
For the central app:
- Set the
database_connectionkey inconfig/activitylog.phpto the name of your central database connection.
laravel-permission
Install the package like usual, but publish the migrations and move them to migrations/tenant:
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"
mv database/migrations/*_create_permission_tables.php database/migrations/tenant
Then add this to your AppServiceProvider::boot() method:
Event::listen(TenancyBootstrapped::class, function (TenancyBootstrapped $event) {
\Spatie\Permission\PermissionRegistrar::$cacheKey = 'spatie.permission.cache.tenant.' . $event->tenancy->tenant->id;
});
The reason for this is that spatie/laravel-permission caches permissions & roles to save DB queries, which means that we need to separate the permission cache by tenant.