where('id', $uid)->value('position_id'); $groups = Db::name('PositionGroup') ->alias('a') ->join("AdminGroup g", "a.group_id=g.id", 'LEFT') ->where([['a.pid', '=', $position_id], ['g.status', '=', 1]]) ->select()->toArray(); //保存用户所属用户组设置的所有权限规则id $ids = []; foreach ($groups as $g) { $ids = array_merge($ids, explode(',', trim($g['rules'], ','))); } $ids = array_unique($ids); //读取所有权限规则 $rules_all = Db::name('AdminRule')->field('src')->select()->toArray(); //读取用户组所有权限规则 $rules = Db::name('AdminRule')->where('id', 'in', $ids)->field('src')->select()->toArray(); //循环规则,判断结果。 $auth_list_all = []; $auth_list = []; foreach ($rules_all as $rule_all) { $auth_list_all[] = strtolower($rule_all['src']); } foreach ($rules as $rule) { $auth_list[] = strtolower($rule['src']); } //规则列表结果保存到Cache Cache::tag('adminRules')->set('RulesSrc0', $auth_list_all, 36000); Cache::tag('adminRules')->set('RulesSrc' . $uid, $auth_list, 36000); } } //读取文件配置 public function getConfig($key) { return Config::get($key); } }