Laravel и Spatie / Laravel-разрешение - PullRequest
       15

Laravel и Spatie / Laravel-разрешение

0 голосов
/ 10 октября 2018

Какой лучший или обычный способ удалить все роли у пользователя?

Я пытался

$roles = $user->getRoleNames(); $user->removeRole($roles);

Return value of App\User::getStoredRole() must implement interface Spatie\Permission\Contracts\Role, instance of Illuminate\Support\Collection returned

Заранее спасибо

Ответы [ 4 ]

0 голосов
/ 23 июля 2019

Вы также можете удалить все роли, синхронизировавшись с пустым массивом, например, так.

$user->syncRoles([]);

Я подтвердил, что это работает.

0 голосов
/ 10 октября 2018

Теперь я так увернулся $user->removeRole($user->roles->first());

0 голосов
/ 11 октября 2018

Используйте простой метод Laravel detach, например, так:

$user->roles()->detach();

0 голосов
/ 10 октября 2018

Из прочтения документации ясно сказано, что вы можете передать экземпляр Collection в removeRole, поэтому я думаю, что вы все делаете правильно.

assignRole, hasRole, hasAnyRole, hasAllRolesФункции и removeRole могут принимать строку, объект \ Spatie \ Permission \ Models \ Role или объект \ Illuminate \ Support \ Collection.

...