php|thinkphp无限极实现下拉选择

最终效果图

在这里插入图片描述

Model

<?php
/**
 * Created by.
 * User: Jim
 * Date: 2020/10/30
 * Time: 9:09
 */

namespace app\admin\model;


use think\Db;
use think\facade\Request;

class EdmMenu extends Base
{
    protected $name = 'edm_menu';

    static $treeList = [];


    /**
     * 获取所有的分类,并与树形显示
     */
    public function getAllChildTreeMenusList()
    {
        $datas = self::select()->toArray();
        $datas =  self::columnTree($datas);

        foreach ($datas as &$row){
            $row['name'] = str_repeat("├─",$row['count']).$row['name'] ;
        }
        return $datas;
    }


    private static function columnTree(&$data,$pid = 0,$count = 1){
        foreach ($data as $key => $value){
            if($value['parent_id']==$pid){
                $value['count'] = $count;
                self::$treeList []=$value;
                unset($data[$key]);
                self::columnTree($data,$value['id'],$count+1);
            }
        }
        return self::$treeList ;
    }

}

Controller


<?php
/**
 * Created by.
 * User: Jim
 * Date: 2020/12/8
 * Time: 10:00
 */

namespace app\admin\controller;


use app\admin\controller\master\Common;
use app\admin\libs\traits\AdminCrud;
use app\admin\model\EdmMenu;

class Edm extends Common
{
    use AdminCrud;

    public function initialize()
    {
        parent::initialize(); // TODO: Change the autogenerated stub
        $this->model = new \app\admin\model\Edm();

    }



    public function add()
    {
        $edmMenus = new EdmMenu();
        $menus = $edmMenus->getAllChildTreeMenusList();

        $this->assign(compact('menus'));

        return $this->fetch();

        
    }

}

前端代码

在这里插入图片描述

数据库 结构

在这里插入图片描述

原始结构

效果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值