yunzer/app/admin/model/AdminSysMenu.php

41 lines
969 B
PHP

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