从用户中删除所有角色的最佳或常用方法是什么?
我试过了
$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
提前致谢
从用户中删除所有角色的最佳或常用方法是什么?
我试过了
$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
提前致谢
像这样使用普通的 Laraveldetach
方法:
$user->roles()->detach();
我现在是这样做的$user->removeRole($user->roles->first());
通过阅读文档,它清楚地表明您可以将Collection
实例传递给,removeRole
所以我认为您做对了。
assignRole、hasRole、hasAnyRole、hasAllRoles 和 removeRole 函数可以接受字符串、\Spatie\Permission\Models\Role 对象或 \Illuminate\Support\Collection 对象。
即使在 Laravel 7 上也能正常工作
对于角色:
$user->syncRoles([]);
对于权限:
$user->syncPermissions([]);
您还可以通过同步到一个空数组来删除所有角色,就像这样。
$user->syncRoles([]);
我确认它适用于 5.8 版。