// 应用分类二级菜单
    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即可。

返回结果:

//
// 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": [ ]
}
]
}
]

最新文章

  1. Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记
  2. 三石推荐!把 Bootstrap 小清新带回家!
  3. hdu 1010 深搜+剪枝
  4. 解决Android解析图片的OOM问题!!!(转)
  5. JS运动基础(二) 摩擦运动、缓冲运动
  6. IIS Express启动命令
  7. redo文件二
  8. 写入文件txt
  9. 触发器-Trigger
  10. QString与char*的相互转换
  11. pytroch nn.Module源码解析(1)
  12. 【offer收割机必备】我简历上的Java项目都好low,怎么办?
  13. 在使用 Git pull 时候报错 error: inflate
  14. h5手机点击返回键,刷新页面
  15. 《Linux内核分析》第七周学习总结
  16. 安装 sshpass
  17. Java -- POI -- 随笔汇总
  18. DB2的空间数据库管理复杂配置
  19. linux配置powerline(bash/vim)美化
  20. random函数

热门文章

  1. BC高精确度函数使用。
  2. redis常见使用场景下PHP实现
  3. Python 3 利用机器学习模型 进行手写体数字识别
  4. JavaScript常见封装方法
  5. Java 获得Class的绝对路径方法
  6. React Native学习(八)—— 对接七鱼客服
  7. Number()和new Number()的区别以及一种简单实现
  8. oracle02
  9. 函数式编程--lambda表达式对比匿名内部类
  10. windows下使用Git Bash命令行克隆远程仓库代码