1. Go to this page and download the library: Download orchestra/tenanti 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/ */
namespace App;
use App\Observers\UserObserver;
use Orchestra\Tenanti\Tenantor;
use Illuminate\Notifications\Notifiable;
use Orchestra\Tenanti\Contracts\TenantProvider;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable implements TenantProvider
{
use Notifiable;
/**
* Convert to tenantor.
*
* @return \Orchestra\Tenanti\Tenantor
*/
public function asTenantor(): Tenantor
{
return Tenantor::fromEloquent('user', $this);
}
/**
* Make a tenantor.
*
* @return \Orchestra\Tenanti\Tenantor
*/
public static function makeTenantor($key, $connection = null): Tenantor
{
return Tenantor::make(
'user', $key, $connection ?: (new static())->getConnectionName()
);
}
/**
* The "booting" method of the model.
*/
protected static function boot()
{
parent::boot();
static::observe(new UserObserver);
}
}
namespace App\Observers;
use Orchestra\Tenanti\Observer;
class UserObserver extends Observer
{
public function getDriverName()
{
return 'user';
}
}
namespace App\Providers;
use Orchestra\Support\Facades\Tenanti;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
Tenanti::connection('tenants', function (User $entity, array $config) {
$config['database'] = "acme_{$entity->getKey()}";
// refer to config under `database.connections.tenants.*`.
return $config;
});
}
}
use App\User;
use Orchestra\Support\Facades\Tenanti;
// ...
$user = User::find(5);
Tenanti::driver('user')->asDefaultConnection($user, 'tenants_{id}');
bash
php artisan vendor:publish
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.