ruankao/app/admin/model/AdminSysMenu.php
2025-07-14 14:55:25 +08:00

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);
}
}