知识学习

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 819|回复: 0

ThinkPHP菜单无极分类实例讲解

[复制链接]

升级   100%

152

主题

152

帖子

734

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
734
发表于 2022-6-11 15:22:25 | 显示全部楼层 |阅读模式




后台
  1.   /**
  2.   * 菜单列表
  3.   */
  4.   public function index(){
  5.                 $menuList= Db::name('menu')->order('sort,id')->select();
  6.                 //递归排序
  7.                 $menuList= $this->sort($menuList);
  8.                 $this->assign('menuList',$menuList);       
  9.     return view();       
  10.   }
  11.         protected function sort($data,$pid=0,$level=0){
  12.                 //此处数据必须是静态数组,不然递归的时候每次都会声明一个新的数组
  13.                 static $arr = array();
  14.     foreach ($data as $key=>$value){
  15.       if($value['pid'] == $pid){
  16.         $value["level"]=$level;
  17.         $arr[]=$value;
  18.                                 //unset()用于销毁指定的变量
  19.                                 unset($this->data[$key]);
  20.         $this->sort($data,$value['id'],$level+1);
  21.       }
  22.     }
  23.     return $arr;
  24.   }
复制代码
前段
  1. <tbody>
  2. {volist name="menuList" id="vo" key="index"}
  3.   <tr>
  4.     <td class="text-left">
  5.     <?php
  6.       if($vo['pid']!=0)
  7.         echo str_repeat(" ",$vo["level"]*3).'├╌ '
  8.         /*str_repeat()函数把字符串重复指定的次数。*/
  9.     ?>
  10.     {$vo.name}
  11.     </td>                                               
  12.   </tr>
  13. {/volist}
  14. </tbody>
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|知识学习 ( 鲁ICP备20015483号 )

GMT+8, 2024-5-18 20:50 , Processed in 0.071180 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表