Classification infinie (partie 1)
Classification Infinie
Qu'est-ce que la Classification Infinie :
Classification Infinie Pour faire simple, une classe peut être divisée en une classe moléculaire, puis une sous-classe peut être Divisez-le en une autre sous-catégorie et continuez indéfiniment, comme si Windows pouvait créer un nouveau dossier, puis créer un dossier dans ce dossier.
public function index(){ $cate=D('cate'); $cateres=$cate->catetree(); $this->assign('cateres',$cateres); $this->display(); }
Écrivez d'abord le modèle dans le contrôleur d'index et $cateres appelle la méthode catetree(). La méthode
catetree() est écrite dans la couche du modèle de classification comme suit
<?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; } }
Expliquons comment l'implémenter à tour de rôle.
méthode catetree
Obtenir des données, $cela signifie s'appeler pour interroger et utiliser l'identifiant pour trier. return renvoie les résultats de la requête.
resort method
$data : Données obtenues
$pid=0 : À partir de la catégorie supérieure 0
$level=0 niveau de classification
Créez d'abord un tableau vide avec Pour stocker des données, foreach est utilisé pour parcourir. Si $v['pid']==$pid signifie l'identifiant de niveau supérieur, alors $v['level']=$level est également la catégorie de niveau supérieur, et le les données interrogées sont stockées dans le tableau. Ensuite, continuez à s'appeler $this->resort($data,$v['id'],$level+1); Ici, $data est égal à $data $v['); id'] est égal à $pid, $level+1 Représente $level augmentant de 1 à chaque fois. Les résultats trouvés sont les suivants,
Nous continuons d'en ajouter quelques-uns pour vérifier
C'est le principe simple de notre classement infini.