41 lines
969 B
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);
|
|
}
|
|
}
|