效果图
数据库数据
CREATE TABLE `menu` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`pid` int(11) DEFAULT NULL,
`controller` varchar(255) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`delete_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4;
查询数据表内容 递归
public function get_Cycic($data,$pid=0)
{
$arr=[];
foreach ($data as $v){
if($v['pid']==$pid){
$v['son']=$this->get_Cycic($data,$v['id']);
$arr[]=$v;
}
}
return $arr;
}
查询数据结构如下
控制器代码
public function home()
{
$data = menu::show();
$menu = new menu();
$result= $menu->get_Cycic($data);
View::assign(['data'=>$result]);
return View::fetch();
}
html代码部分
<!-- 左侧菜单开始 -->
<div class="left-nav">
<div id="side-nav">
{foreach ($data as $v)}
<ul id="nav">
<li>
<a href="javascript:;">
<i class="iconfont left-nav-li" lay-tips="第三方组件"></i>
<cite>{$v.name}</cite>
<i class="iconfont nav_right"></i></a>
<ul class="sub-menu">
{foreach ($v.son as $val)}
<li>
<a onclick="xadmin.add_tab('{$val.name}','{$val.controller}')">
<i class="iconfont"></i>
<cite>{$val.name}</cite></a>
</li>
{/foreach}
</ul>
</li>
</ul>
{/foreach}
</div>
</div>
<!-- <div class="x-slide_left"></div> -->
<!-- 左侧菜单结束 -->
完事