FilamentPHP 的租户多数据库集成
警告
我们有一个已知的route:cache
如果您发现租户端的多数据库连接有问题,您可能会遇到这个问题,只需使用php artisan route:clear
即可修复。
多数据库
创建租户资源
同步租户资源
更改密码
冒充租户
共享租户数据
租户自定义主题
用于注册新租户的 Livewire 组件
作曲家需要 tomatophp/filament-tenancy
安装软件包后请运行此命令
php artisan 灯丝租赁:安装
在你的.env
中添加这个
CENTRAL_DOMAIN=tomatophp.test
其中tomatophp.test
是您的中心域,并确保您添加 root 用户或具有创建数据库权限的用户,然后在您的主中央面板中添加此插件
使用TomatoPHPFilamentTenancyFilamentTenancyPlugin; ->插件(FilamentTenancyPlugin::make()->面板('app'))
现在您需要为租赁应用程序创建一个面板
php artisan 灯丝:面板
并使名称与->panel('app')
相同,在您的租赁应用程序面板中添加此插件
使用TomatoPHPFilamentTenancyFilamentTenancyAppPlugin; ->插件(FilamentTenancyAppPlugin::make())
现在在你的configdatabase.php
添加此代码
...'connections' => ['dynamic' => ['driver' => 'mysql','url' => env('DATABASE_URL'),'host' => env('DB_HOST', '127.0.0.1') 0.1'),'端口' => env('DB_PORT', '3306'),'数据库' => env('DB_DATABASE', 'forge'),'用户名' => env('DB_USERNAME', 'forge'),'密码' => env('DB_PASSWORD', ''),'unix_socket' => env('DB_SOCKET', '') ,'字符集'=>'utf8mb4','排序规则'=>'utf8mb4_unicode_ci','前缀'=> '','prefix_indexes' => true,'strict' => true,'engine' => null,'options' => extension_loaded('pdo_mysql') ? array_filter([PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [], ], ... ],
现在运行配置:缓存
php artisan 配置:缓存
在你的bootstrapapp.php
添加这个中间件
使用 StanclTenancyMiddlewareInitializeTenancyByDomain;使用 StanclTenancyMiddlewareInitializeTenancyBySubdomain; ->withMiddleware(function (中间件 $middleware) {$middleware->group('universal', [InitializeTenancyByDomain::class,InitializeTenancyBySubdomain::class, ]); })
您可以通过在您的插件上使用此方法,允许一键模拟 tanent 面板
使用 TomatoPHPFilamentTenancyFilamentTenancyPlugin; ->插件(FilamentTenancyPlugin::make() ->面板('应用程序') ->允许模拟() )
您可以使用此命令发布配置文件
php artisan 供应商:发布 --tag="filament-tenancy-config"
您可以使用此命令发布视图文件
php artisan 供应商:发布 --tag="filament-tenancy-views"
您可以使用此命令发布语言文件
php artisan 供应商:发布 --tag="filament-tenancy-lang"
您可以使用此命令发布迁移文件
php artisan 供应商:发布 --tag="filament-tenancy-migrations"
查看我们很棒的 TomatoPHP