Intégration multi-bases de données de location pour FilamentPHP
Avertissement
Nous avons un problème connu avec route:cache
Si vous rencontrez un problème de connexion multi-bases de données du côté de votre locataire, vous pourriez être confronté à ce problème. Utilisez simplement php artisan route:clear
et il sera résolu.
Base de données multiple
Créer une ressource de locataire
Synchroniser la ressource du locataire
Changement de mot de passe
Usurpation d'identité du locataire
Partager les données des locataires
Thème personnalisé pour le locataire
Composant Livewire pour enregistrer un nouveau locataire
le compositeur nécessite Tomatophp/filament-tenancy
après avoir installé votre package, veuillez exécuter cette commande
php artisan filament-tenancy:installer
dans votre .env
ajoutez ceci
CENTRAL_DOMAIN=tomatophp.test
où tomatophp.test
est votre domaine central, et assurez-vous d'ajouter un utilisateur root ou un utilisateur autorisé à créer une base de données, puis dans votre panneau central principal, ajoutez ce plugin
utilisez TomatoPHPFilamentTenancyFilamentTenancyPlugin ; ->plugin(FilamentTenancyPlugin::make()->panel('app'))
vous devez maintenant créer un panneau pour l'application de location
Filament artisanal php : panneau
et donnez le même nom que ->panel('app')
, dans le panneau de votre application de location, ajoutez ce plugin
utilisez TomatoPHPFilamentTenancyFilamentTenancyAppPlugin ; ->plugin(FilamentTenancyAppPlugin::make())
maintenant sur votre configdatabase.php
ajoutez ce code
...'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'), ]) : [], ], ... ],
maintenant, lancez config:cache
configuration artisanale php : cache
sur votre bootstrapapp.php
ajoutez ce middleware
utilisez StanclTenancyMiddlewareInitializeTenancyByDomain ; utilisez StanclTenancyMiddlewareInitializeTenancyBySubdomain ; ->withMiddleware(function (Middleware $middleware) {$middleware->group('universal', [InitializeTenancyByDomain::class,InitializeTenancyBySubdomain::class, ]); })
vous pouvez autoriser l'usurpation d'identité sur le panneau tanent en 1 clic en utilisant cette méthode sur votre plugin
utilisez TomatoPHPFilamentTenancyFilamentTenancyPlugin ; ->plugin(FilamentTenancyPlugin::make() ->panneau('application') ->allowImpersonate() )
vous pouvez publier le fichier de configuration en utilisant cette commande
Vendeur artisanal php :publish --tag="filament-tenancy-config"
vous pouvez publier un fichier de vues en utilisant cette commande
fournisseur artisanal php :publish --tag="filament-tenancy-views"
vous pouvez publier le fichier de langues en utilisant cette commande
fournisseur artisanal php :publish --tag="filament-tenancy-lang"
vous pouvez publier le fichier de migrations en utilisant cette commande
fournisseur artisanal php :publish --tag="filament-tenancy-migrations"
Découvrez notre génial TomatoPHP