本文目录
一、修改增加节点信息
按照如下表进行添加
二、基础模型添加数组多层级
/**
* 数组多层级
* @param array $data
* @param int $pid
* @param array
*/
public function subTree(array $data, int $pid = 0) {
$arr = [];
foreach ($data as $val) {
// 给定的pid是当前记录的上级id
if ($pid == $val['pid']) {
// 递归
$val['sub'] = $this -> subTree($data, $val['id']);
$arr[] = $val;
}
}
return $arr;
}
三、权限(节点)模型进行菜单层级化
// 获取有层级的数据
public function treeData() {
$menuData = Node::where('is_menu', '1') -> get() -> toArray();
return $this -> subTree($menuData);
}
四、后台首页控制器修改
读取菜单控制器
// 后台首页显示
public function index() {
// 读取菜单
$menuData = (new Node()) -> treeData();
// dump($menuData);
return view('admin.index.index', compact('menuData'));
}
五、修改后台首页模版
将读取到的菜单进行循环展示:
@foreach($menuData as $item)
<dl id="menu-admin">
<dt><i class="Hui-iconfont"></i>{{$item['name']}}<i class="Hui-iconfont menu_dropdown-arrow"></i></dt>
<dd>
<ul>
@foreach($item['sub'] as $subItem)
<li><a data-href="{{route($subItem['route_name'])}}" data-title="{{$subItem['name']}}" href="javascript:void(0)">{{$subItem['name']}}</a></li>
@endforeach
</ul>
</dd>
</dl>
@endforeach
六、效果
在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。