mirror of
https://github.com/archtechx/tenancy.git
synced 2026-02-05 18:14:04 +00:00
33 lines
876 B
PHP
33 lines
876 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Stancl\Tenancy\Database\Concerns;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Stancl\Tenancy\Resolvers;
|
|
use Stancl\Tenancy\Resolvers\Contracts\CachedTenantResolver;
|
|
|
|
/**
|
|
* Meant to be used on models that belong to tenants.
|
|
*/
|
|
trait InvalidatesTenantsResolverCache
|
|
{
|
|
public static $resolvers = [
|
|
Resolvers\DomainTenantResolver::class,
|
|
Resolvers\PathTenantResolver::class,
|
|
Resolvers\RequestDataTenantResolver::class,
|
|
];
|
|
|
|
public static function bootInvalidatesTenantsResolverCache(): void
|
|
{
|
|
static::saved(function (Model $model) {
|
|
foreach (static::$resolvers as $resolver) {
|
|
/** @var CachedTenantResolver $resolver */
|
|
$resolver = app($resolver);
|
|
|
|
$resolver->invalidateCache($model->tenant);
|
|
}
|
|
});
|
|
}
|
|
}
|