$oneItem['menu_name'], 'controller_name'=>strtolower($oneItem['controller_name']), 'action_name'=>strtolower($oneItem['action_name']), 'icon'=>$oneItem['icon'] ]; $menu_id = $oneItem['menu_id']; $secondLevel = self::getChildByParentId($menu_id); foreach($secondLevel as $secondItem){ $sideMenu[$oneItem['menu_id']]['child'][] = [ 'menu_name'=>$secondItem['menu_name'], 'url_path'=>url($secondItem['controller_name']."/".$secondItem['action_name']), 'action_name'=>strtolower($secondItem['action_name']), 'controller_name'=>strtolower($secondItem['controller_name']) ]; } } return $sideMenu; } /** * 获取角色菜单的展现形式 * @param int $role_id 角色id * @param int $where 条件 * @return array */ public function getRoleMenuShow($role_id,$where=[]){ $where['menu.is_show']=1; $where['menu.status']=1; if($where){ $this->where($where); } $join=[ ['rel_role_menu rm','rm.menu_id = menu.menu_id and rm.role_id ='.$role_id], ]; $field="menu.*,rm.role_id rm_role,rm.menu_id rm_menu"; $this->alias('menu'); $this->field('menu.*,rm.role_id'); $this->join($join); $this->order('parent_menu_id asc,list_order desc'); $res= $this->field($field)->select(); return $this->BaseModel($res); } /** * 通过菜单获取子菜单信息 * @param $parentId * @param bool $is_cache 是否缓存 * @return false|\PDOStatement|string|\think\Collection */ public function getChildByParentId($parentId,$is_cache=true){ //缓存5分钟 $menuSelect = $this->where(['parent_menu_id'=>"{$parentId}",'is_show'=>1,'status'=>1])->order('list_order desc,menu_id asc'); if(Config::get('app_debug') == false){ return $menuSelect->cache($is_cache,300)->select(); } return $menuSelect->select(); } }