where([ 'auth_name' => $name ])->count(); if ($findAuthRuleCount == 0) {//没有规则时,失败! //return false; return true; } } } $list = []; //保存验证通过的规则名 $roleInfo = Db::name('nw_admin_role_user') ->alias("a") ->join('nw_admin_role b', 'a.role_id = b.id') ->where(["a.user_id" => $uid, "b.status" => 1]) ->column("role_id, auth_ids"); // if (in_array(1, $groups)) { // return true; // } // $groups = array_keys($roleInfo); $authIds = array_values($roleInfo); $uniqueAuthIdsTemp = []; foreach ($authIds as $ids) { $idsArr = explode(',', $ids); foreach ($idsArr as $id) { array_push($uniqueAuthIdsTemp, $id); } } $uniqueAuthIds = array_unique($uniqueAuthIdsTemp); // if (empty($groups)) { // return false; // } if (empty($uniqueAuthIds)) { return false; } $rules = Db::name('nw_admin_auth_rule') ->where(["id" => ["in", $uniqueAuthIds]]) ->select(); foreach ($rules as $rule) { if (strtolower($rule['auth_name']) === strtolower($name) ) { return true; } } return false; } }