AccessNode(); if($rows != null) { $arr = []; foreach ($rows as $key => $val) { $arr[$val['controller']][] = $val['action']; } } if(!empty($arr[$controller]) && in_array($action,$arr[$controller])) { return true; } return false; } /* * 检测菜单栏显示和隐藏 * */ public function MenuAccess() { $row = $this->AccessMenu(); if($row != null) { return array_column($row,'id'); } } /* * 判断是否异地登录。 * */ public function UniqueToken() { $cacheName = Yii::$app->cache; $ses = Yii::$app->session['user_info']; $tokenName = Yii::$app->params['cacheKey']['user_token'].$ses['uid']; if($ses['token'] == $cacheName->get($tokenName) ) { return true; } return false; } private function AccessNode() { return $this->QueryCommon(['pfg_user_node.controller','pfg_user_node.action'],1) ->leftJoin('pfg_user_node','pfg_user_rn.nid = pfg_user_node.id') ->asArray()->all(); } private function AccessMenu() { return $this->QueryCommon(['pfg_sysmenu.id','pfg_sysmenu.name'],2) ->leftJoin('pfg_sysmenu','pfg_user_rn.nid = pfg_sysmenu.id') ->orderBy(['pfg_sysmenu.sort'=>SORT_DESC]) ->asArray() ->all(); } private function QueryCommon($select,$type) { $query = UserUr::find()->andWhere(['uid'=>Yii::$app->session['user_info']['uid']]); $query->select = $select; $query = $this->WhereFilter($query,$type); return $query; } public function WhereFilter($query,$type) { $query->leftJoin('pfg_user_role','pfg_user_ur.rid = pfg_user_role.id and pfg_user_role.state = 1'); $query->leftJoin('pfg_user_rn','pfg_user_role.id = pfg_user_rn.rid and type = '.$type); return $query; } }