当前位置:首页 > CMS教程 > Thinkphp > 列表

ThinkPHP菜单无极分类实例讲解

发布:smiling 来源: PHP粉丝网  添加日期:2022-04-17 09:58:06 浏览: 评论:0 

这篇文章主要介绍了ThinkPHP菜单无极分类实例讲解,文中将代码列举了出来,有感兴趣的同学可以借鉴参考下。

效果图如下:

ThinkPHP菜单无极分类实例讲解

controller控制器代码: 

  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.   protected function sort($data,$pid=0,$level=0){ 
  11.       //此处数据必须是静态数组,不然递归的时候每次都会声明一个新的数组 
  12.       static $arr = array(); 
  13.   foreach ($data as $key=>$value){ 
  14.     if($value['pid'] == $pid){ 
  15.       $value["level"]=$level
  16.       $arr[]=$value
  17.               //unset()用于销毁指定的变量 
  18.               unset($this->data[$key]); 
  19.       $this->sort($data,$value['id'],$level+1); 
  20.     } 
  21.   } 
  22.   return $arr

html模板代码:

  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("&nbsp;",$vo["level"]*3).'├╌ ' 
  8.         /*str_repeat()函数把字符串重复指定的次数。*/ 
  9.     ?> 
  10.     {$vo.name} 
  11.     </td>                      
  12.   </tr> 
  13. {/volist} 
  14. </tbody>

Tags: ThinkPHP菜单无极分类

分享到: