FilamentPHP のテナンシー マルチデータベース統合
警告
route:cache
には既知の問題があります。テナント側からのマルチデータベース接続に問題が見つかった場合は、この問題に直面する可能性がありますphp artisan route:clear
使用するだけで修正されます。
マルチデータベース
テナントリソースの作成
テナントリソースの同期
パスワードの変更
テナントの偽装
テナントデータの共有
テナント用のカスタムテーマ
新しいテナントを登録するための Livewire コンポーネント
コンポーザーには Tomatophp/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 をチェックしてください