'integer', 'parent_id' => 'integer', 'type' => 'integer', 'sort' => 'integer', 'status' => 'integer', 'create_time' => 'integer', 'update_time' => 'integer' ]; // 允许写入的字段 protected $allowField = [ 'parent_id', 'type', 'label', 'icon_class', 'sort', 'src', 'status' ]; /** * 获取菜单树形结构 * @return array */ public static function getMenuTree() { // 获取所有启用的菜单 $menus = self::where('status', 1) ->order('sort', 'desc') ->order('smid', 'asc') ->select() ->toArray(); return self::buildTree($menus); } /** * 构建树形结构 * @param array $menus 菜单数组 * @param int $parent_id 父级ID * @return array */ public static function buildTree($menus, $parent_id = 0) { $tree = []; foreach ($menus as $menu) { if ($menu['parent_id'] == $parent_id) { $children = self::buildTree($menus, $menu['smid']); if ($children) { $menu['children'] = $children; } else { $menu['children'] = []; } $tree[] = $menu; } } return $tree; } }