laravel RBAC laravel-permission使用

孟谭三
2023-12-01

目录

 引文

安装

基本用法


 引文

因为业务需求 需要rbac来进行相关的编码 然后在packagist上面找了下载量最高的一个包,之后开始进行一些粗略的研究 老习惯,先放官方文档(文档是纯英的 有些不友善

官方文档:Introduction | laravel-permission | Spatie

Github地址:GitHub - spatie/laravel-permission: Associate users with roles and permissions

安装

composer require spatie/laravel-permission

拉取完包之后 开始进行发布

php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"

如果需要用户组的概念的话 可以在 config/permission 里面有个 teams 将后面的false 改为 true 然后就可以使用组了。

然后开始表迁移

php artisan migrate

 之后可以生成表。注意查看表的结构以及数据

基本用法

可以将Spatie\Permission\Traits\HasRoles内的特征添加到模型当中

在模型层当中使用

use HasRoles;

这个包允许用户与权限和角色相关联,每个角色都与多个权限相关联

创建角色创建权限 可以使用以下的方法来进行创建 

$role = Role::create(['name' => 'writer']); //创建角色
$permission = Permission::create(['name' => 'edit articles']); //创建权限

分配权限

$role->givePermissionTo($permission);
$permission->assignRole($role);

将多个权限同步到一个角色当中

$role->syncPermissions($permissions);
$permission->syncRoles($roles);

可以使用以下方法来将角色中删除权限

$role->revokePermissionTo($permission);
$permission->removeRole($role);

简单的用法大概也就这些了

待续......

 类似资料: