// 应用分类二级菜单
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": [ ] } ] } ]