@E6APB

Как сделать 3 различных группы пользователей в Laravel?

У меня будут 3 различных групп пользователей. Они не будут похожи друг на друга - слишком много различий в полях. Понятно, что можно сделать 3 таблицы для каждых пользователей и создать гуарда для каждого, но это создает многие ограничения, например при работе с Laravel Passport - там в таблице используется поле user_id (т е возможна работа только с 1 группой). Как мне правильно работать с 3 сильно отличающихся группами?
  • Вопрос задан
  • 952 просмотра
Решения вопроса 1
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
Никогда не делайте разные таблицы для юзеров.
Особенно если они пересекаются в коде, это будет такой гемор что потом не разгребсти.

Что значит сильные различия? Разные поля в профилях, разные доступы?
Для этого и делят на группу любым пакетом RBAC.

А для супер разных полей профиля можно создать key value таблицу и в ней хранить абсолютно любые данные. Вместо тонны новых столбцов в таблице юзеров.
Упрощенный вариант EAV подхода.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
neuotq
@neuotq
Прокрастинация
Если вас беспокоит конкретно Passport, то можно пойти путем ввода системы ролей для пользователей.
Есть например интересный пакет для организации ACL https://github.com/spatie/laravel-permission , тогда все пользователи будут в одной таблице, а далее вы просто распределяете роли и/или права каждому пользователю.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы