原理
底层使用 邻接表模型 和 嵌套集合模型 的结合,即 对其数据库的设计:既有 parent_id ,也有 lft 和 rgt 字段
由于在无限级分类时,邻接表模型 增加节点相对容易,查询时效率较低,而嵌套集合刚好相反,增加和修改节点比较复杂,但是查询时比较简单。所以在进行查询时主采用左右值,增加和修改时主采用邻接表
开源项目来源
https://github.com/lazychaser/laravel-nestedset
使用方法
-
在所属项目下拉取 该轮子
composer require kalnoy/nestedset
-
确保数据库中的表字段必须包含 parent_id,lft,rgt 三个字段,段名自行设计,修改
kalnoy\nestedset\src\NesetedSet.php
文件下这三个字段的默认值,将其修改为数据库中设计的字段名
-
创建 Eloquent 模型,与数据库中的表进行映射连接