在Yii2框架中使用netstedsets与ztree实现无限极分类管理教程
来源:互联网 发布:大数据 包嗅探器 编辑:程序博客网 时间:2024/05/21 06:36
无限极分类
无限极分类的方式很多种,例如可以使用pid为父节点id的方式,只是这样的方式读取的时候使用递归,比较麻烦,且影响性能。
而现在我们要说的是netstedsets来解决无限极分类的问题。
先来看看netstedsets的原理:
如图所示:家用电器分类为1-6,大家电2-3,小家电4-5,电脑手机分类为7-12,台式机8-9,笔记本10-11。
我们在设计数据库的时候,就可以通过left_key,right_key来界定属于某个分类。同样我们可以使用deep来界定分类的等级。
在Yii2中,加载netstedsets包。
我们这里使用:https://packagist.org/packages/creocoder/yii2-nested-sets
通过composer将包加载到我们的项目中。
具体使用过程:
1.在使用前,我们需要准备工作。先创建一个新的类,我们可以放在models中。
创建一个GoodsCategoryQuery类,必须继承ActiveQuery类
然后:
我们需要在商品分类的类里面需要添加新的行为,并且需要重写一下find()方法。
2. 创建商品分类的根节点
让我们首先创建一个根节点,我们的商品分类表有更多的其他字段,我们可以通过如下代码实现创建:
这个时候我们需要添加子节点了,我们需要考虑前端怎么去展示我们的节点。我们可以选择使用前端插件zTree来实现分类的回显。
3. 加载zTree插件
我们可以通过网站下载zTree插件:http://www.treejs.cn/v3/main.php#_zTreeInfo
然后将zTree放在静态文件插件目录下,例如/statics/plugins/ztree
通过demo,我们可以知道zTree需要获取的前端json格式为:
var zNodes =[ {id:1, pId:0, name:"[core] 基本功能 演示", open:true}, {id:101, pId:1, name:"最简单的树 -- 标准 JSON 数据", file:"core/standardData"}, {id:102, pId:1, name:"最简单的树 -- 简单 JSON 数据", file:"core/simpleData"}, {id:103, pId:1, name:"不显示 连接线", file:"core/noline"}, {id:104, pId:1, name:"不显示 节点 图标", file:"core/noicon"}, {id:105, pId:1, name:"自定义图标 -- icon 属性", file:"core/custom_icon"}, {id:106, pId:1, name:"自定义图标 -- iconSkin 属性", file:"core/custom_iconSkin"}, ]
那么,我们可以在商品的分类的model里添加一个获取该数据格式的方法:
然后根据demo在前端加载zTree插件。代码太多,可以参照demo文件,这里就不列举代码了。
demo位置:/statics/plugins/zTree/demo/cn/index.html
4.增加子节点
首先在渲染添加界面时,需要传zTree需要的数据。
渲染添加页面:
然后就可以创建子节点了:
我们就可以实现如下效果:
- 在Yii2框架中使用netstedsets与ztree实现无限极分类管理教程
- yii2框架中使用嵌套集合实现无限极商品分类
- 在ThinkPhp中实现无限极分类
- 无限极分类原理与实现
- 无限极分类原理与实现
- 无限极分类原理与实现
- 在Yii框架下用递归方式简单实现无限极分类
- TP框架实现获取无限极分类的树
- 无限级分类的实现教程
- PHP+MYSQL实现无限级分类管理
- ThinkPHP框架-无限分类的使用
- Thinkphp实现无限极分类`
- Thinkphp实现无限极分类
- thinkphp实现无限极分类
- PHP实现无限极分类
- php 无限极分类实现
- 递归实现无限极分类
- php实现无限极分类
- fragment复用至EventBus多次调用
- 博文目录 师万物博客的指导思想
- CSU-ACM2017暑期训练1-Debug与STL B
- SQL EXCEL 增加字符减少字符,SQL增加时间
- 矢量文字符号文件格式设计
- 在Yii2框架中使用netstedsets与ztree实现无限极分类管理教程
- nodejs mac 下打开浏览器,并访问特定网页
- A. Bear and Three Balls
- RabbitMQ消息追踪之Firehose
- LVS系列—10种调度算法简介
- 青蛙的约会 POJ
- 死磕算法导论(二)合并排序
- ios 简单的网络图片轮训
- Java基础知识4