tomatophp / filament-tenancy
FilamentPHP的多数据库租户集成
v1.0.4
2024-09-18 09:22 UTC
Requires
- php: ^8.1|^8.2
- filament/filament: ^3.0
- stancl/tenancy: ^3.8
- tomatophp/console-helpers: ^1.1
README
Filament租户
FilamentPHP的多数据库租户集成
截图
功能
- 多数据库
- 创建租户资源
- 同步租户资源
- 密码更改
- 租户模拟
- 共享租户数据
- 为租户定制主题
- 为注册新租户的Livewire组件
安装
composer require tomatophp/filament-tenancy
安装您的包后,请运行以下命令
php artisan filament-tenancy:install
在您的.env
文件中添加以下内容
CENTRAL_DOMAIN=tomatophp.test
其中tomatophp.test
是您的中心域名,并确保您添加了一个根用户或具有创建数据库权限的用户,然后在您的主中心面板中添加此插件
use TomatoPHP\FilamentTenancy\FilamentTenancyPlugin; ->plugin(FilamentTenancyPlugin::make()->panel('app'))
现在您需要为租户应用程序创建一个面板
php artisan filament:panel
并将名称设置为->panel('app')
,在您的租户应用程序面板中添加此插件
use TomatoPHP\FilamentTenancy\FilamentTenancyAppPlugin; ->plugin(FilamentTenancyAppPlugin::make())
现在在您的config\database.php
中添加以下代码
... 'connections' => [ 'dynamic' => [ 'driver' => 'mysql', 'url' => env('DATABASE_URL'), 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => 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'), ]) : [], ], ... ],
现在运行config:cache
php artisan config:cache
在您的bootstrap\app.php
中添加以下中间件
use Stancl\Tenancy\Middleware\InitializeTenancyByDomain; use Stancl\Tenancy\Middleware\InitializeTenancyBySubdomain; ->withMiddleware(function (Middleware $middleware) { $middleware->group('universal', [ InitializeTenancyByDomain::class, InitializeTenancyBySubdomain::class, ]); })
允许模拟
您可以通过在插件中使用此方法一键允许租户面板的模拟
use TomatoPHP\FilamentTenancy\FilamentTenancyPlugin; ->plugin( FilamentTenancyPlugin::make() ->panel('app') ->allowImpersonate() )
发布资源
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="filament-tenancy-config"
您可以使用以下命令发布视图文件
php artisan vendor:publish --tag="filament-tenancy-views"
您可以使用以下命令发布语言文件
php artisan vendor:publish --tag="filament-tenancy-lang"
您可以使用以下命令发布迁移文件
php artisan vendor:publish --tag="filament-tenancy-migrations"
其他Filament包
查看我们的令人惊叹的TomatoPHP