* @since 1.0 */ class AdminMenu extends ActiveRecord { private $_admin_menu; private $_admin_menu_tree_arr; public $_ajaxMenuEditUrl; private $_active_menu_ids; public static function tableName() { return '{{%admin_menu}}'; } public function rules() { $current_rules = [ [['name', 'parent_id','url_key',], 'required'], ['sort_order','validateSortOrder'], ]; return $current_rules; } public function validateSortOrder($attribute,$params){ if($order = $this->sort_order){ if(!is_numeric($order)){ $this->addError($attribute,"sort_order must be numeric"); } } } public function getAdminMenu(){ if($this->_admin_menu === null ){ $this->_admin_menu = new self; } return $this->_admin_menu; } public function getActiveMenuIds(){ if($this->_active_menu_ids === null){ $user = Yii::$app->user->identity; $user_id = $user['id']; $roles = AdminUserRole::find()->asArray()->where([ 'user_id' => $user_id ])->all(); $role_ids = []; if(!empty($roles)){ foreach($roles as $one){ $role_ids[] = $one['role_id']; } } //var_dump($user);exit; $menu_ids = []; if(!empty($role_ids)){ $AdminRoleMenus = AdminRoleMenu::find() ->asArray() ->select(['menu_id']) ->where(['in','role_id',$role_ids]) ->all(); if(!empty($AdminRoleMenus)){ foreach($AdminRoleMenus as $menu){ $menu_ids[] = $menu['menu_id']; } } } $menu_ids = array_unique($menu_ids); $this->_active_menu_ids = $menu_ids; } return $this->_active_menu_ids; } # 得到后台显示菜单(左侧) public function getLeftMenuTreeHtml($treeArr='',$i=1){ $active_menu_ids = $this->getActiveMenuIds(); $str = ''; if(!$treeArr){ $treeArr = $this->getMenuTreeArray(); } foreach($treeArr as $node){ $name = $node["name"]; $id = $node["id"]; if(!in_array($id,$active_menu_ids)){ continue; } $url_key = $node["url_key"]; if($i == 1){ $str .= '