layui学习:数据库输出树

本文为自己学习做的一个小笔记,希望对各位初学者有用。

所用材料:

    1、TP5框架

    2、mysql

    3、layui

第一步:创建数据库 laytree表


数据库字段介绍如下:

    1、id:这个不用说了,索引字段

    2、name:node名称

    3、pid:父id (根字段的父id设置为0)

    4、path:我这里放的是路径格式是“1-2-n”表示 id的继承关系

    5、spread:boolean类型,node的打开或者关闭状态

    6、children:子节点的存放处,数据表中都为空

    7、href:连接地址

第二步:控制器代码:

namespace app\index\controller;
use  think\Controller;
use  think\Db;
class Index extends Controller
{
    public function index()
    {
    	$result=array();
        $result=$this->bulid_tree(0); //从pid为0开始查找
        $r=json_encode($result);
   	$this->assign('r',$r);
   	return view();
    }
    //创建树 tree(递归)
    function bulid_tree($root_id){
        $rows=db('laytree')->select();
        $childs=$this->findChild($rows,$root_id);
        if(empty($childs)){
            return null;
        }
        foreach($childs as $k => $v){
            $resultTree=$this->bulid_tree($v['id']);
            if(null != $resultTree){
                $childs[$k]['children']=$resultTree;
                
            }

        }
        return $childs;
    }
    function findChild(&$arr,$id){
        $childs=array();
        foreach($arr as $k => $v){
            if($v['pid']==$id){
                 $childs[]=$v;
            }
            
        }
        return $childs;
    }
}

第三步:视图代码:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	 <link rel="stylesheet" href="/static/layui/css/layui.css">
</head>
<body>
<ul id="demo"></ul>
<script src="/static/layui/layui.js" charset="utf-8"></script>
<script>
layui.use('tree', function(){
  layui.tree({
    elem:"#demo",
    nodes:{$r}
  });
});
</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值