whereLike('permission_name', $value); } public function searchIdAttr($query, $value, $data) { $query->where('parent_id', $value)->whereOr('id', $value); } public function searchRoleIdAttr($query, $value, $data) { $permissionIds = []; $permissions = Roles::where('id', $value)->find()->getPermissions(); foreach ($permissions as $_permission) { $permissionIds[] = $_permission->pivot->permission_id; } if(!empty($permissionIds)) { $query->whereIn('id', $permissionIds); } } public function searchUidAttr($query, $value, $data) { if ($value == 1) { return $query; } // 查出用户拥有的角色 $roleIds = Db::table('user_has_roles')->where('uid', $value)->column('role_id'); // 查出角色拥有的权限 $permissionIds = Db::table('role_has_permissions')->whereIn('role_id', $roleIds)->column('permission_id'); if(!empty($permissionIds)) { $query->whereIn('id', $permissionIds); } } }