Mandantenfähige Multidatenbank-Integration für FilamentPHP
Warnung
Wir haben ein bekanntes Problem mit route:cache
Wenn Sie auf der Mandantenseite ein Problem mit der Verbindung mehrerer Datenbanken feststellen, kann dieses Problem auftreten. Verwenden Sie einfach php artisan route:clear
und es wird behoben.
Multi-Datenbank
Mandantenressource erstellen
Mandantenressource synchronisieren
Passwortänderung
Mieter imitieren
Teilen Sie Mieterdaten
Benutzerdefiniertes Theme für Mieter
Livewire-Komponente zur Registrierung eines neuen Mieters
Composer benötigen Tomatophp/Filament-Tenancy
Führen Sie nach der Installation Ihres Pakets bitte diesen Befehl aus
php artisan filament-tenancy:install
Fügen Sie dies in Ihrer .env
hinzu
CENTRAL_DOMAIN=tomatophp.test
Dabei ist tomatophp.test
Ihre zentrale Domain und stellen Sie sicher, dass Sie einen Root-Benutzer hinzufügen oder einen Benutzer mit der Berechtigung zum Erstellen einer Datenbank haben. Fügen Sie dann in Ihrem zentralen Hauptbereich dieses Plugin hinzu
Verwenden Sie TomatoPHPFilamentTenancyFilamentTenancyPlugin; ->plugin(FilamentTenancyPlugin::make()->panel('app'))
Jetzt müssen Sie ein Panel für die Miet-App erstellen
PHP-Artisan-Filament:Panel
und machen Sie den gleichen Namen wie ->panel('app')
Fügen Sie in Ihrem Mandanten-App-Panel dieses Plugin hinzu
Verwenden Sie TomatoPHPFilamentTenancyFilamentTenancyAppPlugin; ->plugin(FilamentTenancyAppPlugin::make())
Fügen Sie nun diesen Code in Ihre configdatabase.php
ein
...'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'), ]): [], ], ... ],
Führen Sie nun config:cache aus
php artisan config:cache
Fügen Sie in Ihrer bootstrapapp.php
diese Middleware hinzu
verwenden Sie StanclTenancyMiddlewareInitializeTenancyByDomain; verwenden Sie StanclTenancyMiddlewareInitializeTenancyBySubdomain; ->withMiddleware(function (Middleware $middleware) {$middleware->group('universal', [InitializeTenancyByDomain::class,InitializeTenancyBySubdomain::class, ]); })
Sie können die Identitätsübernahme für das Tanent-Panel mit einem Klick zulassen, indem Sie diese Methode in Ihrem Plugin verwenden
Verwenden Sie TomatoPHPFilamentTenancyFilamentTenancyPlugin; ->plugin(FilamentTenancyPlugin::make() ->panel('app') ->allowImpersonate() )
Mit diesem Befehl können Sie die Konfigurationsdatei veröffentlichen
PHP-Artist-Anbieter:publish --tag="filament-tenancy-config"
Mit diesem Befehl können Sie die Ansichtsdatei veröffentlichen
PHP-Artist-Anbieter:publish --tag="filament-tenancy-views"
Mit diesem Befehl können Sie die Sprachdatei veröffentlichen
PHP-Artist-Anbieter:publish --tag="filament-tenancy-lang"
Mit diesem Befehl können Sie die Migrationsdatei veröffentlichen
PHP-Artist-Anbieter:publish --tag="filament-tenancy-migrations"
Testen Sie unser Awesome TomatoPHP