首页 >社区问答列表 >ThinkPhp5.1 实现菜单的树状输出

ThinkPhp5.1 实现菜单的树状输出

首先在application下面的common中建立方法,这里以部门数据表department为例

数据库表结构如下:

360截图16550428537093.png

  1. 查找下面的子部门并树状输出,common中的代码为:

    function GetMenuID($pid){
       $list = \think\Db::table("department")
           ->where("pid",$pid)
           ->select();
       return $list;
    }

  2. 控制器中的代码为:
    $list = Db::table('bumen')->where('pid',0)->select();//查找父栏目
    $this->assign("list",$list);
    return $this->fetch();

  3. 视图中的代码为
    <select class="layui-select" name="dpid" id="dpid" required="required" lay-verify="dpid" autocomplete="off">
       {volist name="list" id="vo"}
           <option value="{$vo.id}">{$vo.dp_name}</option>
           {volist name="$vo['id']|GetMenuID=###" id="po"}
               <option value="{$po.id}">&nbsp;&nbsp;|——{$po.dp_name}</option>
               {volist name="$po['id']|GetMenuID=###" id="co"}
               <option value="{$po.id}">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|——{$co.dp_name}</option>
               {/volist}
           {/volist}
       {/volist}
    </select>

  4. 这里只写到三级,要是级数更多,依次类推,输出结果如下:

    360截图16751025260842.png

无数据提示还没有回复,楼主喊你快去抢前排~~~我来回答