Infinite Classification (Part 1)
Unlimited classification

# #What is infinite classification:
Infinite classification simply means that a class can be divided into a molecular class, and then a subclass can be divided into another subclass and so on indefinitely. It seems that Windows can create a new folder, and then create a folder within this folder.public function index(){
$cate=D('cate');
$cateres=$cate->catetree();
$this->assign('cateres',$cateres);
$this->display();
}First write the template in the index controller, and $cateres calls the catetree() method.
<?php
namespace Admin\Model;
use Think\Model;
class CateModel extends Model {
protected $_validate = array(
array('catename','require','管理员名称不得为空!',1),
);
public function catetree(){
$data=$this->order('id desc')->select();
return $this->resort($data);
}
public function resort($data,$pid=0,$level=0){
static $arr=array();
foreach ($data as $k => $v) {
if ($v['pid']==$pid) {
$v['level']=$level;
$arr[]=$v;
$this->resort($data,$v['id'],$level+1);
}
}
return $arr;
}
} Let’s explain how to implement it in turn. catetree method
Get data, $this means calling itself to query, and use id to sort. return returns the results of the query.
resort method $data: Obtained data
$pid=0: Top category starts with 0
$level=0 Classification level
First create an empty array to store the data, and use foreach to traverse it. If $v['pid']==$pid means the top-level id, then $v['level']=$level is also the top-level category. The queried data is stored in the array, and then continues to call itself $this- >resort($data,$v['id'],$level 1); Here $data is equal to $data $v['id'] is equal to $pid, $level 1 means $level increases by 1 each time. The results found are as follows,

Let’s continue to add a few more to see

This is the simple principle of our infinite classification.
















The courseware is not available for download at the moment. The staff is currently organizing it. Please pay more attention to this course in the future~ 