PHP code example of misaf / laravel-tenancy-support
1. Go to this page and download the library: Download misaf/laravel-tenancy-support library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
misaf / laravel-tenancy-support example snippets
namespace Misaf\TenancySupport\Contracts;
interface TenantResolver
{
public function getTenantId(): int|string|null;
}
namespace Misaf\TenancySupport\Contracts;
interface TeamResolver
{
public function getTeamId(): int|string|null;
}
namespace Misaf\TenancySupport\Contracts;
interface TenantAccessResolver
{
public function canAccessAllTenants(): bool;
}
namespace Misaf\TenancySupport\Contracts;
interface TeamAccessResolver
{
public function canAccessAllTeams(): bool;
}
namespace App\Tenancy;
use Misaf\TenancySupport\Contracts\TeamAccessResolver;
use Misaf\TenancySupport\Contracts\TeamResolver;
use Misaf\TenancySupport\Contracts\TenantAccessResolver;
use Misaf\TenancySupport\Contracts\TenantResolver;
final class RequestTenantResolver implements TenantResolver, TenantAccessResolver, TeamResolver, TeamAccessResolver
{
public function getTenantId(): int|string|null
{
return auth()->user()?->tenant_id;
}
public function getTeamId(): int|string|null
{
return auth()->id();
}
public function canAccessAllTenants(): bool
{
return (bool) auth()->user()?->is_super_admin;
}
public function canAccessAllTeams(): bool
{
return (bool) auth()->user()?->is_super_admin;
}
}
use App\Tenancy\RequestTenantResolver;
use Misaf\TenancySupport\Contracts\TeamResolver;
use Misaf\TenancySupport\Contracts\TenantResolver;
public function register(): void
{
$this->app->scoped(TenantResolver::class, RequestTenantResolver::class);
$this->app->scoped(TeamResolver::class, RequestTenantResolver::class);
}
use Illuminate\Database\Eloquent\Model;
use Misaf\TenancySupport\Concerns\BelongsToTenant;
final class Invoice extends Model
{
use BelongsToTenant;
}
use Illuminate\Database\Eloquent\Model;
use Misaf\TenancySupport\Concerns\BelongsToTeam;
final class Task extends Model
{
use BelongsToTeam;
}
use App\Models\Invoice;
use Misaf\TenancySupport\Support\CurrentTenant;
$allInvoices = CurrentTenant::withAllTenants(
fn () => Invoice::query()->latest()->get()
);
use App\Models\Task;
use Misaf\TenancySupport\Support\CurrentTeam;
$allTeamTasks = CurrentTeam::withAllTeams(
fn () => Task::query()->latest()->get()
);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.