/** * 用户有哪些角色 */ public function roles() { // 使用withPivot能够把关系表中的字段获取出来 return $this->belongsToMany(\App\AdminRole::class, 'admin_role_user', 'user_id', 'role_id')->withPivot(['user_id', 'role_id']); }
this
/** * 用户是否有某个角色(某些角色) */ public function isInRoles($roles) { return !!$roles->intersect($this->roles)->count(); }
code
/** * 用户是否有某个权限 */ public function hasPermission($permission) { return $this->isInRoles($permission->roles); }
it
/** * 给用户分配角色 */ public function assignRole($role) { return $this->roles()->save($role); }
io
/** * 取消用户的角色 */ public function deleteRole($role) { return $this->roles()->detach($role); }
function
/** * 当前角色的全部权限 */ public function permissions() { return $this->belongsToMany(\App\AdminPermission::class, 'admin_permission_role', 'role_id', 'permission_id')->withPivot(['role_id', 'permission_id']); }
class
/** * 给角色分配权限 */ public function grantPermission($permission) { return $this->permissions()->save($permission); }
model
/** * 取消角色的权限 */ public function deletePermission($permission) { return $this->permissions()->detach($permission); }
权限
/** * 判断角色是否有权限 */ public function hasPermission($permission) { return $this->permissions->contains($permission); }
ant
/** * 当前权限属于哪一个角色 */ public function roles() { return $this->belongsToMany(\App\AdminRole::class, 'admin_permission_role', 'permission_id', 'role_id')->withPivot(['role_id', 'permission']); }
co