У меня есть Название модели Проект и Пользователь с использованием отношения laravel.
- Проект и Пользователь с использованием отношения многие ко многим .
Я хочу использовать laravel аутентификацию предоставление ролей пользователю на основе проекта .
Что означает:
пользователь " Али " имеет роль " admin " в проекте " проект a ",
, но в проекте " проект b"пользователь" Али"роль" member".
Как я могу это реализовать?
Проблема решена:
Мое решение - добавить дополнительные данные в хранилище сводных таблиц project_users
в виде строки role
.
Когда создаете новый проект и добавляете с помощью дополнительные данные, используя:
$user->projects()->save($project, ['role' => 'Manager']);
Когда необходимо вызвать его:
$user_role = $user->projects()->where('user_id', $user['id'])->first()->pivot->role;
Он вернет строку 'Manager'
и использует ее для назначения роли.
$user->syncRoles($user_role);