数据表中必须设置left,right,parent_id,level等字段,名字不一定相同。
NestedSets.php就是这个类,可以放到框架中的第三方类或者工具类中,便于调用。
DbMysqlModel.php是数据库的接口类,便于解析NestedSets.php中的数据库语句操作。
DBMysqlImplModel.php是DbMysqlModel.php的实现类。
DbMysqlModel.php和DBMysqlImplModel.php一般放到框架的数据模型所在的文件夹
使用时,注意修改这三个文件的命名空间,以及修改DBMysqlImplModel.php这个实现类,改成你自己的数据库的实现。
下面给出增加和删除节点的代码例子,仅供参考:
增加节点:
$db = new db(); //获取你的数据库操作模型 $DBMysqlImplModel = new DBMysqlImplModel($db); //获取数据库实现类 $nestedsets = new nestedsets($DBMysqlImplModel,'表名','left','right','parent_id','id','level'); $data['name'] = '测试菜单'; //增加菜单的项,name对应数据表里的字段 $parent_id = 1; //增加到哪个菜单下 $nestedsets->insert($parent_id,$data,'bottom');
删除节点:
$nestedsets->delete($id);
执行操作后,程序会自动设置left,right的值。
获取指定节点的子节点
$nestedsets->getChilds($id);
下载:https://yunpan.cn/cBkmNNtNcCQPB (提取码:82e9)