目录
因为业务需求 需要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);
简单的用法大概也就这些了
待续......