1

ユーザーからすべての役割を削除する最善または通常の方法は何ですか?

私は試した

$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

6 に答える 6

1

Collectionドキュメントを読むと、インスタンスをに渡すことができることが明確に示されremoveRoleているので、正しくやっていると思います。

assignRole、hasRole、hasAnyRole、hasAllRoles、および removeRole 関数は、文字列、\Spatie\Permission\Models\Role オブジェクト、または \Illuminate\Support\Collection オブジェクトを受け入れることができます。

于 2018-10-10T09:14:46.507 に答える
0

これはLaravel 7でも問題なく動作します

役割の場合: $user->syncRoles([]);

権限の場合: $user->syncPermissions([]);

于 2020-08-03T01:41:17.607 に答える
0

Spatieのドキュメントから、以前の役割をすべて削除し、新しい役割を簡単に割り当てる方法があることがわかります

$user->syncRoles($roles);

参照用に、このリンクにアクセスできます

于 2020-11-16T15:24:41.910 に答える