use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
$role = Role::create(['name' => 'writer']);
$permission = Permission::create(['name' => 'edit articles']);
$permissions = $user->permissions; //分配給用戶的所有權限的列表
$permissions = $user->getAllPermissions(); //獲取用戶通過角色繼承的所有權限
$roles = $user->getRoleNames(); //獲取所有已定義的角色的集合
$users = User::role('writer')->get(); //僅返回具有“作者”角色的用戶
$users = User::permission('edit articles')->get(); //僅返回具有“編輯文章”權限的用戶
給權限:
$user->givePermissionTo('edit articles');
$user->givePermissionTo('edit articles', 'delete articles'); //一次賦予多個權限
$user->givePermissionTo(['edit articles', 'delete articles']) //一次賦予多個權限的數組
撤消:
$user->revokePermissionTo('edit articles');
$user->syncPermissions(['edit articles', 'delete articles']);//一次性撤消 並添加新的權限
$user->hasPermissionTo('edit articles'); //是否有權限
$user->hasAnyPermission(['edit articles', 'publish articles', 'unpublish articles']); //或者用戶是否有多個權限
分配角色:
$user->assignRole('writer');
$user->assignRole('writer', 'admin'); // 一次分配多個角色
$user->assignRole(['writer', 'admin']); // 一次分配一個角色數組
$user->removeRole('writer');
$user->syncRoles(['writer', 'admin']); //所有當前角色將從用戶中刪除,並由給定的數組替換
$user ->getDirectPermissions() //或$user -> permissions; //直接權限
$user ->getPermissionsViaRoles(); //從用戶角色繼承的權限
$user ->getAllPermissions(); //所有適用於用戶的權限(繼承和直接)