åæå°å  http://www.niu12.com/article/37
golangå®ç°æ é级èå(beegoæ¡æ¶ä¸)
æ°æ®è¡¨å¦ä¸
-- ----------------------------
-- Table structure for `auth_menu`
-- ----------------------------
DROP TABLE IF EXISTS `auth_menu`;
CREATE TABLE `auth_menu` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`pid` int(11) NOT NULL COMMENT 'ç¶çº§èåid',
`name` char(20) NOT NULL COMMENT 'èååå',
`sort` tinyint(4) DEFAULT '0' COMMENT 'æåºå¼',
`route` varchar(60) DEFAULT '' COMMENT '跳转é¾æ¥',
PRIMARY KEY (`id`),
KEY `pid` (`pid`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8mb4 COMMENT='æé管ç_èå表';
-- ----------------------------
-- Records of auth_menu
-- ----------------------------
INSERT INTO `auth_menu` VALUES ('14', '0', '设置', '1', '');
INSERT INTO `auth_menu` VALUES ('15', '14', 'æé管ç', '1', '');
INSERT INTO `auth_menu` VALUES ('16', '14', 'æç设置', '2', '');
INSERT INTO `auth_menu` VALUES ('18', '15', 'è§è²å表', '2', '/auth/role');
INSERT INTO `auth_menu` VALUES ('19', '15', 'æéå表', '3', '/auth/permission');
INSERT INTO `auth_menu` VALUES ('20', '15', 'è¡ä¸ºå表', '4', '/auth/action');
INSERT INTO `auth_menu` VALUES ('21', '15', 'èåå表', '5', '/auth/menu');
INSERT INTO `auth_menu` VALUES ('22', '16', 'åºæ¬ä¿¡æ¯', '1', '/administrator/adminInfo');
INSERT INTO `auth_menu` VALUES ('23', '15', '管çåå表', '8', '/auth/administrator');
æ件 menu.go (使ç¨beego orm)
type Menu struct {
Id int `json:"id"`
Pid int `json:"pid"`
Name string `json:"name"`
Sort int `json:"sort"`
Route string `json:"route"`
}
type TreeList struct {
Id int `json:"id"`
Name string `json:"name"`
Pid int `json:"pid"`
Sort int `json:"sort"`
Route string `json:"route"`
Children []*TreeList `json:"children"`
}
func init() {
// 注å模å
orm.RegisterModel(new(Menu))
}
func (m *Menu)TableName() string {
return "auth_menu"
}
/**
èåå表
*/
func (m *Menu)MenuList() []*TreeList{
return m.getMenu(0)
}
/**
éå½è·åæ å½¢èå
*/
func (m *Menu)getMenu(pid int) []*TreeList {
o := orm.NewOrm()
var menu []Menu
_,_ = o.QueryTable("auth_menu").Filter("pid", pid).OrderBy("sort").All(&menu)
treeList := []*TreeList{}
for _, v := range menu{
child := v.getMenu(v.Id)
node := &TreeList{
Id:v.Id,
Name:v.Name,
Sort:v.Sort,
Route:v.Route,
Pid:v.Pid,
}
node.Children = child
treeList = append(treeList, node)
}
return treeList
}
转载äº:https://www.cnblogs.com/zhouqi666/p/11055362.html