PHP code example of maize-tech / laravel-tenant-aware
1. Go to this page and download the library: Download maize-tech/laravel-tenant-aware 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/ */
maize-tech / laravel-tenant-aware example snippets
return [
'tenant' => [
/*
|--------------------------------------------------------------------------
| Tenant Model
|--------------------------------------------------------------------------
|
| Here you may specify the fully qualified class name of the tenant model.
|
*/
'model' => null,
/*
|--------------------------------------------------------------------------
| Tenant key name
|--------------------------------------------------------------------------
|
| Here you may specify the column name for the tenant identifier.
| All models using the multi-tenant feature should ,
'only_current' => Maize\TenantAware\Actions\TenantOnlyCurrentAction::class,
],
],
'models' => [
/*
|--------------------------------------------------------------------------
| Global Models
|--------------------------------------------------------------------------
|
| Here you may specify the full list of global models who should return
| all entities, including the ones related to the landlord tenant.
|
*/
'global' => [
// App\Models\Article::class,
],
'listen' => [
/*
|--------------------------------------------------------------------------
| Set tenant key
|--------------------------------------------------------------------------
|
| Here you may specify the action invoked when creating a multi-tenant
| model entity.
| By default, the action sets the tenant field to the current tenant key.
|
*/
'creating' => Maize\TenantAware\Listeners\SetTenantKey::class,
],
],
'scope' => [
/*
|--------------------------------------------------------------------------
| Scope apply
|--------------------------------------------------------------------------
|
| Here you may override the default scope method applied to all models
| who belong to a tenant.
| The default class adds a where constraint to exclude entities not related
| to the current user's tenant or to the landlord tenant.
|
*/
'apply' => Maize\TenantAware\Scopes\ScopeTenantAware::class,
/*
|--------------------------------------------------------------------------
| Scope Methods
|--------------------------------------------------------------------------
|
| Here you may override the default scope methods used to add the
| where constraints to all models who belong to a tenant.
|
*/
'methods' => [
Maize\TenantAware\Scopes\ScopeOrTenantWhere::class,
Maize\TenantAware\Scopes\ScopeTenantWhere::class,
Maize\TenantAware\Scopes\ScopeTenantAware::class,
],
],
];
php
namespace Support\TenantAware;
use Spatie\Multitenancy\Models\Tenant;
class TenantCurrentAction
{
public function __invoke(): ?Model
{
return Tenant::current();
}
}
php
namespace Support\TenantAware;
use Maize\TenantAware\Support\Config;
use Spatie\Multitenancy\Models\Tenant;
class TenantLandlordAction
{
public function __invoke(): ?Model
{
$tenantModel = Config::getTenantModelName();
$landlordCode = 'landlord'; // get landlord tenant from your config, env, or wherever you defined it
return app($tenantModel)::query()
->firstWhere('code', $landlordCode);
}
}