Integração de vários bancos de dados de locação para FilamentPHP
Aviso
Temos um problema conhecido com route:cache
se você encontrar um problema com a conexão de vários bancos de dados do lado do seu locatário, você pode enfrentar esse problema, basta usar php artisan route:clear
e ele será corrigido.
Multibanco de dados
Criar recurso de locatário
Sincronizar recurso de locatário
Alteração de senha
Inquilino se passar por
Compartilhe dados do locatário
Tema personalizado para inquilino
Componente Livewire para registrar novo locatário
compositor requer tomatephp/filament-tenancy
depois de instalar seu pacote, execute este comando
php artesão filament-tenancy:instalar
no seu .env
adicione isto
CENTRAL_DOMAIN=tomatophp.teste
onde tomatophp.test
é o seu domínio central, e certifique-se de adicionar um usuário root ou um usuário com permissão para criar banco de dados, então em seu painel central principal adicione este plugin
usar TomatoPHPFilamentTenancyFilamentTenancyPlugin; ->plugin(FilamentTenancyPlugin::make()->panel('app'))
agora você precisa criar um painel para o aplicativo de locação
filamento artesanal php: painel
e faça o nome igual a ->panel('app')
, no painel do seu aplicativo de locação adicione este plugin
usar TomatoPHPFilamentTenancyFilamentTenancyAppPlugin; ->plugin(FilamentTenancyAppPlugin::make())
agora no seu configdatabase.php
adicione este código
...'connections' => ['dynamic' => ['driver' => 'mysql','url' => env('DATABASE_URL'),'host' => env('DB_HOST', '127.0. 0.1'),'porta' => env('DB_PORT', '3306'),'banco de dados' => env('DB_DATABASE', 'forge'),'nome de usuário' => env('DB_USERNAME', 'forge'),'senha' => env('DB_PASSWORD', ''),'unix_socket' => env('DB_SOCKET', '') ,'charset' => 'utf8mb4','collation' => 'utf8mb4_unicode_ci','prefix' => '','prefix_indexes' => true,'strict' => true,'engine' => null,'options' => extension_loaded('pdo_mysql') ? array_filter([PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [], ], ... ],
agora execute config:cache
configuração do artesão php:cache
no seu bootstrapapp.php
adicione este middleware
usar StanclTenancyMiddlewareInitializeTenancyByDomain; usar StanclTenancyMiddlewareInitializeTenancyBySubdomain; ->withMiddleware(function (Middleware $middleware) {$middleware->group('universal', [InitializeTenancyByDomain::class,InitializeTenancyBySubdomain::class, ]); })
você pode permitir a representação no painel tanent com 1 clique usando este método em seu plugin
usar TomatoPHPFilamentTenancyFilamentTenancyPlugin; ->plugin(FilamentTenancyPlugin::make() ->painel('aplicativo') ->allowImpersonate() )
você pode publicar o arquivo de configuração usando este comando
fornecedor de artesão php:publish --tag="filament-tenancy-config"
você pode publicar o arquivo de visualizações usando este comando
fornecedor de artesão php:publish --tag="filament-tenancy-views"
você pode publicar o arquivo de idiomas usando este comando
fornecedor de artesão php:publish --tag="filament-tenancy-lang"
você pode publicar o arquivo de migração usando este comando
fornecedor de artesão php:publish --tag="filament-tenancy-migrations"
Confira nosso incrível TomatoPHP