Как можно установить более одной роли для пользователя, чтобы дать много разрешений - PullRequest
0 голосов
/ 03 июля 2018

Я создаю сайт. В этом я создал несколько пакетов (пример пакета фильма) Пользователь может купить эти пакеты. Я создал разрешение на просмотр этих фильмов для этих пользователей, когда они покупают один пакет. Но если пользователь хочет купить следующий пакет, например, книжные пакеты, мне нужно разрешить ему просматривать оба пакета.

Я создал это разрешение с помощью пакета spatie. В этом я создал роли для пользователя. Участник ролей в кино может просматривать фильм.

Я хочу знать, могу ли я назначить одному пользователю более одной роли. Я уже пробовал, не могу.

Если я хочу разрешить этому пользователю просматривать оба пакета, как я могу это сделать.

Любое предложение, которое я надеюсь здесь.

1 Ответ

0 голосов
/ 03 июля 2018

Вы имеете в виду, если вы можете установить более одной роли для модели? Да, ты можешь. Он находится в файле справки Spatie Laravel Permission :

Использование разрешений через роли

Роль может быть назначена любому пользователю:

$user->assignRole('writer');

// You can also assign multiple roles at once
$user->assignRole('writer', 'admin');
// or as an array
$user->assignRole(['writer', 'admin']);
A role can be removed from a user:

$user->removeRole('writer');

Роли также могут быть синхронизированы:

// All current roles will be removed from the user and replaced by the array given
$user->syncRoles(['writer', 'admin']);

Итак, чтобы назначить movie, а также book разрешения пользователю, вы можете сделать:

$user = App\User::find(1); // get the user
$user->arrignRole(['movie', 'book']); // assigning roles

Если у пользователя уже есть роль, попробуйте метод синхронизации. Это удалит все предыдущие роли и прикрепит указанные:

$user = App\User::find(1); // get the user
$user->syncRoles(['movie', 'book']); // syncing roles
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...