Обеспечение мультиарендности (multitenancy) на поддоменах в Laravel
Romega Digital анонсировали пакет, во многом упрощающий создание множественной аренды на поддоменах в приложениях Laravel:
Этот пакет предназначен для быстрого и простого добавления нескольких арендаторов в вашем приложение на Laravel. Он сам создает модели арендаторов и и задает отношения между ними. Пакет идентифицирует входящий трафик по поддомену и находит соответствующего арендатора в таблице Tenant. Если арендатор не найден или пользователь не связан с конкретным поддоменом, запрос выдает 403 ошибку.
Пакет Remega обеспечивает поддержку моделей для нескольких арендаторов с помощью параметра HasTenants
, а также использует пакет разрешений Spatie для дополнительной функциональности.
Подробнее: два лучших пакета Laravel для управления ролями / разрешениями
Пример исполнения из readme:
use Spatie\Permission\Traits\HasRoles; use RomegaDigital\Multitenancy\Traits\HasTenants; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use HasTenants, HasRoles; // ... }
Указав параметр HasTenants
вы можете получить пользователей, связанных с моделью арендатора:
User::tenants()->get()
И, наконец, код создания арендаторов:
Tenant::createMany([ [ 'name' => 'An Identifying Name', 'domain' => 'tenant1' ], [ 'name' => 'A Second Customer', 'domain' => 'tenant2' ] ]);
Кроме этого пакета вашему распоряжению предлагается сопутствующий пакет Nova под названием Multitenency Nova Tool , позволяющий управлять функциональностью нескольких арендаторов в вашем приложении.
Для подробного ознакомления, вы можете прошерстить исходники на GitHub romegadigital/Multitenancy. Краткий гайд в readme поможет вам узнать, как правильно установить и использовать пакет.