菜单的无限级分类

菜单项属于菜单,菜单被模块调用,菜单项中又可以分为子菜单项, 这样一直无限级分, 比如

1 首页 0 0
2 新闻 0 0
3 国内新闻 2 0-2
4 国际新闻 2 0-2
5 民生 3 0-2-3
6 城市周边 3 0-2-3-5
7 国际要闻 0-2-4

首页和新闻都是属于一级分类, 所以所属id和path都为0, 国内新闻是新闻的子菜单项, 所以所属id就为2, path就为0-2, 民生是属于国内新闻的, 所以id就为3, path就为0-2-3, 从这里就可以知道了, 子项的path, 等于父菜单的path+id。 比如城市周边是属于国内新闻下的民生, (0-2-3),那么城市周边的path就为0-2-3-5(民生path+id)。

如果要添加菜单项, 就要先获取菜单项的所属id是什么,这里可以通过获取表单传过来的父id, 然后调用getById把父id作为条件查出父id的id和path, 然后用path连接id就为当前的path, 如果父id的id和path都为0, 说明是主菜单, 直接返回就可以了, 回到前台, 再通过filed生成concat语句通过连接后的字符串和所属id排序, 就完成了菜单级别分类。

此条目发表在thinkphp分类目录,贴了, , , 标签。将固定链接加入收藏夹。