php 分类 菜单 树形显示

添加功能调用方法显示一级菜单以及所有子菜单

 public function add()
    {
        $menus_list = $this->db->table('admin_menus')->where(array('status'=>0))->cates('mid');
        $menus = $this->getTreeItems($menus_list);
        $result = array();
        foreach ($menus as $value){
            $value['children'] = isset($value['children']) ? $this->formatMenus($value['children']) :false;
            $result[] = $value ;
        }

        $this->view->assign('menus',$result);
        return $this->view->fetch('add');

    }

    //树形显示所有菜单
    private function getTreeItems($items){
        $tree = array();
        foreach ($items as $item){
            if (isset($items[$item['pid']])){
                $items[$item['pid']]['children'][]=&$items[$item['mid']];
            }
            else{
                $tree[] = &$items[$item['mid']];
            }
        }
        return $tree;
    }


    // 除了顶级菜单  都是二级显示
    private function formatMenus($items ,&$res=array()){
        foreach ($items as $item){
            if (!isset($item['children'])){
                $res[] = $item;
            }
            else{
                $tem = $item['children'];
                unset($item['children']);
                $res[] = $item;
                $this->formatMenus($tem , $res);
            }
        }
        return $res;

    }

前台代码

<div class="layui-form-item">
            <label class="layui-form-label">权限菜单</label>
                {volist id="vo" name="menus"}
                    <div class="layui-input-block">
                        <div style="border: 3px solid gainsboro; margin: 5px 0; padding: 5px;">
                            <input type="checkbox" name="menu[{$vo.mid}]" lay-skin="primary" title="{$vo.title}">
                            <hr>
                            {volist id="cvo" name="vo.children"}
                            <input type="checkbox" name="menu[{$cvo.mid}]" lay-skin="primary" title="{$cvo.title}">
                            {/volist}
                        </div>
                    </div>
                {/volist}
        </div>

成品样式

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苗先生的PHP记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值