zoukankan      html  css  js  c++  java
  • Laravel中RBAC的modle层(超简)

    关于用户model层

    /** * 用户有哪些角色 */ public function roles() { // 使用withPivot可以把关系表中的字段获取出来 return $this->belongsToMany(AppAdminRole::class, 'admin_role_user', 'user_id', 'role_id')->withPivot(['user_id', 'role_id']); }

    /** * 用户是否有某个角色(某些角色) */ public function isInRoles($roles) { return !!$roles->intersect($this->roles)->count(); }

    /** * 用户是否有某个权限 */ public function hasPermission($permission) { return $this->isInRoles($permission->roles); }

    /** * 给用户分配角色 */ public function assignRole($role) { return $this->roles()->save($role); }

    /** * 取消用户的角色 */ public function deleteRole($role) { return $this->roles()->detach($role); }

    关于角色层的model

    /** * 当前角色的所有权限 */ public function permissions() { return $this->belongsToMany(AppAdminPermission::class, 'admin_permission_role', 'role_id', 'permission_id')->withPivot(['role_id', 'permission_id']); }

    /** * 给角色分配权限 */ public function grantPermission($permission) { return $this->permissions()->save($permission); }

    /** * 取消角色的权限 */ public function deletePermission($permission) { return $this->permissions()->detach($permission); }

    /** * 判断角色是否有权限 */ public function hasPermission($permission) { return $this->permissions->contains($permission); }

    关于权限层的model

    /** * 当前权限属于哪个角色 */ public function roles() { return $this->belongsToMany(AppAdminRole::class, 'admin_permission_role', 'permission_id', 'role_id')->withPivot(['role_id', 'permission']); }

  • 相关阅读:
    1365 Fib(N) mod Fib(K) [斐波那契相关]
    51nod1439 互质对 [莫比乌斯函数, 容斥]
    UVA1642 魔法GCD Magical GCD [gcd, 双向链表]
    李超线段树学习笔记 [模板]
    P4297 [NOI2006]网络收费 [树形dp]
    田忌赛马 [贪心(完成) / 动态规划(待填坑)]
    菌落 [状压dp?]
    异或约数和 [异或相关]
    java 驼峰命名
    java 静态构造函数
  • 原文地址:https://www.cnblogs.com/ronaldo-coder/p/8660639.html
Copyright © 2011-2022 走看看