Интеграция нескольких баз данных аренды для FilamentPHP
Предупреждение
У нас есть известная проблема с route:cache
Если вы обнаружите проблему с подключением к нескольким базам данных со стороны вашего клиента, вы можете столкнуться с этой проблемой, просто используйте php artisan route:clear
, и она будет исправлена.
Мульти база данных
Создать ресурс арендатора
Синхронизировать ресурс клиента
Изменение пароля
Олицетворение арендатора
Поделиться данными арендатора
Пользовательская тема для арендатора
Компонент Livewire для регистрации нового арендатора
композитору требуется tomatophp/filament-tenancy
после установки пакета запустите эту команду
PHP Artisan filament-tenancy: установить
в ваш .env
добавьте это
CENTRAL_DOMAIN=tomatophp.test
где tomatophp.test
— ваш центральный домен, и убедитесь, что вы добавили пользователя root или у пользователя есть разрешение на создание базы данных, затем на главной центральной панели добавьте этот плагин.
используйте TomatoPHPFilamentTenancyFilamentTenancyPlugin; ->plugin(FilamentTenancyPlugin::make()->panel('app'))
теперь вам нужно создать панель для приложения аренды
PHP Artisan Filament: панель
и сделайте имя таким же, как ->panel('app')
, на панели приложения аренды добавьте этот плагин
используйте TomatoPHPFilamentTenancyFilamentTenancyAppPlugin; ->плагин(FilamentTenancyAppPlugin::make())
теперь в ваш configdatabase.php
добавьте этот код
...'connections' => ['dynamic' => ['driver' => 'mysql','url' => env('DATABASE_URL'),'host' => env('DB_HOST', '127.0.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 Artisan: кэш
в ваш bootstrapapp.php
добавьте это промежуточное программное обеспечение
используйте StanclTenancyMiddlewareInitializeTenancyByDomain; используйте StanclTenancyMiddlewareInitializeTenancyBySubdomain; ->withMiddleware(function (Middleware $middleware) {$middleware->group('universal', [InitializeTenancyByDomain::class,InitializeTenancyBySubdomain::class, ]); })
вы можете разрешить олицетворение панели Tanent одним щелчком мыши, используя этот метод в своем плагине
используйте TomatoPHPFilamentTenancyFilamentTenancyPlugin; ->плагин(FilamentTenancyPlugin::make() -> панель('приложение') ->allowImpersonate() )
вы можете опубликовать файл конфигурации с помощью этой команды
поставщик PHP Artisan:publish --tag="filament-tenancy-config"
вы можете опубликовать файл представлений с помощью этой команды
поставщик PHP Artisan:publish --tag="filament-tenancy-views"
вы можете опубликовать языковой файл с помощью этой команды
поставщик php artisan:publish --tag="filament-tenancy-lang"
вы можете опубликовать файл миграции с помощью этой команды
поставщик php artisan:publish --tag="filament-tenancy-migrations"
Ознакомьтесь с нашим удивительным TomatoPHP