go语言实现无限极分类

go语言实现无限极分类_第1张图片

 

   // 应用分类二级菜单
    AppCateNode struct {
        Id int64 `json:"id"`
        Name string `json:"name"`
        Sub []*AppCateNode `json:"sub"`
    }

func (appc *AppCate) AppCateArr(pid int64) []*AppCateNode { apc := new([]*AppCate) db.GetEngine().Where("parent_id=?", pid).Find(apc) if apc == nil { return nil } apc_node := []*AppCateNode{} for _, v := range *apc { chd := appc.AppCateArr(v.Id) node := &AppCateNode{ Id: v.Id, Name: v.Name, } node.Sub = chd apc_node = append(apc_node, node) } return apc_node }

调用方法:第一次传递参数0即可。

 

返回结果:

 

// 20170720100410
// http://c.cc:8080/admin/app_cate

[
  {
    "id": 1,
    "name": "游戏",
    "sub": [
      {
        "id": 3,
        "name": "射击游戏",
        "sub": [
          {
            "id": 9,
            "name": "aaa",
            "sub": [
              
            ]
          },
          {
            "id": 10,
            "name": "ccc",
            "sub": [
              
            ]
          }
        ]
      },
      {
        "id": 4,
        "name": "卡牌游戏",
        "sub": [
          
        ]
      },
      {
        "id": 5,
        "name": "跑酷游戏",
        "sub": [
          
        ]
      }
    ]
  },
  {
    "id": 2,
    "name": "购物",
    "sub": [
      {
        "id": 6,
        "name": "图书商城",
        "sub": [
          
        ]
      },
      {
        "id": 7,
        "name": "生活用品",
        "sub": [
          
        ]
      },
      {
        "id": 8,
        "name": "网上超市",
        "sub": [
          
        ]
      }
    ]
  }
]

 

转载于:https://www.cnblogs.com/rxbook/p/7209627.html

你可能感兴趣的:(golang)