58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * 商业使用授权协议
 | |
|  * 
 | |
|  * Copyright (c) 2025 [云泽网]. 保留所有权利.
 | |
|  * 
 | |
|  * 本软件仅供评估使用。任何商业用途必须获得书面授权许可。
 | |
|  * 未经授权商业使用本软件属于侵权行为,将承担法律责任。
 | |
|  * 
 | |
|  * 授权购买请联系: 357099073@qq.com
 | |
|  * 官方网站: https://www.yunzer.cn
 | |
|  * 
 | |
|  * 评估用户须知:
 | |
|  * 1. 禁止移除版权声明
 | |
|  * 2. 禁止用于生产环境
 | |
|  * 3. 禁止转售或分发
 | |
|  */
 | |
| 
 | |
| namespace app\admin\model;
 | |
| 
 | |
| use think\Model;
 | |
| 
 | |
| class AdminSysMenu extends Model
 | |
| {
 | |
|     /**
 | |
|      * 获取菜单树形结构
 | |
|      * @return array
 | |
|      */
 | |
|     public static function getMenuTree()
 | |
|     {
 | |
|         // 获取所有启用的菜单
 | |
|         $menus = self::where('status', 1)
 | |
|             ->order('type', 'asc')
 | |
|             ->order('sort', 'desc')
 | |
|             ->select()
 | |
|             ->toArray();
 | |
| 
 | |
|         $menuTree = [];
 | |
| 
 | |
|         // 先处理所有父菜单
 | |
|         foreach ($menus as $menu) {
 | |
|             if ($menu['parent_id'] == 0) {
 | |
|                 $menuTree[$menu['smid']] = $menu;
 | |
|                 $menuTree[$menu['smid']]['children'] = [];
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         // 再处理子菜单
 | |
|         foreach ($menus as $menu) {
 | |
|             if ($menu['parent_id'] != 0 && isset($menuTree[$menu['parent_id']])) {
 | |
|                 $menuTree[$menu['parent_id']]['children'][] = $menu;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         return array_values($menuTree);
 | |
|     }
 | |
| }
 |