thinkphp无限极分类

Posted yakupjan123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp无限极分类相关的知识,希望对你有一定的参考价值。

这里首先介绍一下,什么是无限极分类?

无限极分类简单点说就是将一个类分成多个子类,然后一个子类又可以分另外多个子类这样无限分下去,就好象windows可以新建一个文件夹,然后在这个文件夹里又可以建一些个文件夹,在文件夹底下还可以建一些文件夹一样

那用Thinkphp如何实现无限分类的呢?

下面看一下分类结果:

技术图片

 

下面给出实例代码:

1.先创建Model文件并在里面定义两个方法,如下:

技术图片
<?php

namespace app\\admin\\model;

use think\\Model;
class Cate extends Model
{ 
  public function catetree()
  {
    $cateRes=$this->select(); //从数据库中读取所有数据
    return $this->sort($cateRes); //执行sort方法
  }
  public function sort($data,$pid=0,$level=0)   //定义一个sort方法 $pid--上级栏目id   $level ---栏目的等级
  {
    static $arr=array();   //定义一个数组用于保存数据
    foreach ($data as $k => $v) {  //循环数据
        if ($v[‘pid‘]==$pid) {    //如果pid等于定义的pid 的话属于同一等级栏目并保存在数组中
            $v[‘level‘]=$level;
            $arr[]=$v;
            $this->sort($data,$v[‘id‘],$level+1); //
        }
    }
    return $arr;
  }
}
View Code

2.将模型在控制里面实例化并执行catetree方法,入下:

技术图片

 

 随后看到所有的分类循序发生变化,但是很不直观,所以为了看起来优雅,在视图文件里面输出想要输出的字符,入下:

 

技术图片
<td><?php echo str_repeat(‘-‘,$vo[‘level‘]*8)?>{$vo.catename}</td>
View Code

含义是在栏目名称前面反复输出栏目等级8倍的“-”;

 

以上是关于thinkphp无限极分类的主要内容,如果未能解决你的问题,请参考以下文章

php无限极分类以及递归(thinkphp)

thinkphp无限极分类能分页显示吗

thinkphp5.0无限极分类及格式化输出

thinkPHP3.2.3中实现无限极分类用Tree类

无限极分类不用递归生成多维数组(树)的方法

thinkphp 无限极 评论