
FilamentPHP のテナンシー マルチデータベース統合
警告
route:cacheには既知の問題があります。テナント側からのマルチデータベース接続に問題が見つかった場合は、この問題に直面する可能性がありますphp artisan route:clear使用するだけで修正されます。




マルチデータベース
テナントリソースの作成
テナントリソースの同期
パスワードの変更
テナントの偽装
テナントデータの共有
テナント用のカスタムテーマ
新しいテナントを登録するための Livewire コンポーネント
作曲家にはトマトphp/filament-tenancyが必要です
パッケージをインストールした後、このコマンドを実行してください
php 職人フィラメントテナンシー:インストール
.envにこれを追加します
CENTRAL_DOMAIN=トマトphp.test
ここで、 tomatophp.testは中央ドメインです。root ユーザーを追加するか、データベースを作成する権限を持つユーザーを追加してから、メインの中央パネルにこのプラグインを追加します。
TomatoPHPFilamentTenancyFilamentTenancyPlugin を使用します。
->プラグイン(FilamentTenancyPlugin::make()->パネル('app'))次に、テナント アプリのパネルを作成する必要があります
php 職人フィラメント:パネル
名前を->panel('app')と同じにし、テナンシー アプリ パネルにこのプラグインを追加します
TomatoPHPFilamentTenancyFilamentTenancyAppPlugin を使用します。 ->プラグイン(FilamentTenancyAppPlugin::make())
configdatabase.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 職人の設定:キャッシュ
bootstrapapp.phpにこのミドルウェアを追加します
StanclTenancyMiddlewareInitializeTenancyByDomain を使用する;StanclTenancyMiddlewareInitializeTenancyBySubdomain を使用する;
->withMiddleware(function (Middleware $middleware) {$middleware->group('universal', [InitializeTenancyByDomain::class,InitializeTenancyBySubdomain::class,
]);
})プラグインでこのメソッドを使用すると、1 クリックで Tanent パネルへの偽装を許可できます。
TomatoPHPFilamentTenancyFilamentTenancyPlugin を使用します。
->プラグイン(FilamentTenancyPlugin::make()
->パネル('アプリ')
->allowImpersonate()
)このコマンドを使用して構成ファイルを公開できます
php 職人ベンダー:publish --tag="filament-tenancy-config"
このコマンドを使用してビューファイルを公開できます
php 職人ベンダー:publish --tag="filament-tenancy-views"
このコマンドを使用して言語ファイルを公開できます
php 職人ベンダー:publish --tag="filament-tenancy-lang"
このコマンドを使用して移行ファイルを公開できます
php 職人ベンダー:publish --tag="filament-tenancy-migrations"
素晴らしい TomatoPHP をチェックしてください