Heim > Backend-Entwicklung > PHP-Tutorial > Thinkphp-Implementierungsmethode für die unendliche Klassifizierung

Thinkphp-Implementierungsmethode für die unendliche Klassifizierung

大家讲道理
Freigeben: 2023-03-05 21:40:02
Original
4929 Leute haben es durchsucht

In diesem Artikel wird die Methode zur Implementierung der unendlichen Klassifizierung im Thinkphp-Framework erläutert. Sie wird im Allgemeinen im Klassifizierungsmenü von Websites verwendet. Es ist auch sehr einfach, diese Methode in thinkphp zu implementieren . Okay, lass uns als nächstes lernen, wie man es benutzt.

Das Prinzip der unendlichen Klassifizierung besteht darin, ein Feld (z. B. Sid) zur Differenzierung hinzuzufügen. Die Klassifizierungs-Sid der obersten Ebene ist 0, die Klassifizierungs-Sid der zweiten Ebene ist die ID des Klassifizierung der oberen Ebene usw. Bei der Ausgabe wird im Allgemeinen eine Rekursion verwendet.

Wir erstellen zunächst eine neue Datentabelle mit folgender Struktur:

Thinkphp-Implementierungsmethode für die unendliche Klassifizierung

Controller: CateAction .class .php

<?php
 class CateAction extends Action{
 function index(){
 $cate=M(&#39;Cate&#39;);
 $list=$cate->field("id,name,pid,path,concat(path,&#39;-&#39;,id) as bpath")->order(&#39;bpath&#39;)->select();
 foreach($list as $key=>$value){
 $list[$key][&#39;count&#39;]=count(explode(&#39;-&#39;,$value[&#39;bpath&#39;]));
 }
 $this->assign(&#39;alist&#39;,$list);
 $this->display();
 }//添加栏目
 function add(){
 $cate=new CateModel();if($vo=$cate->create()){
 if($cate->add()){
 $this->success(&#39;添加栏目成功&#39;);
 }else{
 $this->error(&#39;添加栏目失败&#39;);
 }
 }else{
 $this->error($cate->getError());
 }
 }}
 ?>
Nach dem Login kopieren

Modell: CateModel.class.php

<?php
 class CateModel extends Model{//对应数据库中的表xp_cate
 protected $_auto=array(
 array(&#39;path&#39;,&#39;tclm&#39;,3,&#39;callback&#39;),
 );function tclm(){
 $pid=isset($_POST[&#39;pid&#39;])?(int)$_POST[&#39;pid&#39;]:0;
 echo ($pid);
 if($pid==0){
 $data=0;
 }else{
 $list=$this->where("id=$pid")->find();
 $data=$list[&#39;path&#39;].&#39;-&#39;.$list[&#39;id&#39;];//子类的path为父类的path加上父类的id
 }
 return $data;
 }
 }
 ?>
Nach dem Login kopieren

Vorlage: index.html

<form action="!-URL-!/add" method="post">
 请选择父级栏目:<select name="pid" size="20">
 <option value="0">根栏目</option>
 <volist name="alist" id="vo">
 <option value="{$vo[&#39;id&#39;]}">
   {:str_repeat(" ",$vo[&#39;count&#39;]-2)}
 {$vo[&#39;name&#39;]}
 </option>
 </volist>
 </select><br />
 新的栏目名称:<input type="text" name="name" /><br />
 <input type="submit" value="添加栏目" />
 </form>
Nach dem Login kopieren

Die angezeigten Ergebnisse lauten wie folgt:

Thinkphp-Implementierungsmethode für die unendliche Klassifizierung


Hinweis:

Die in diesem Artikel implementierte Klassifizierung auf unendlicher Ebene verwendet das ThinkPhP-Framework. Das heißt, die MVC-Architektur ist klar geschrieben. Für diejenigen, die TP verwenden können, ist es einfach, sie zu verstehen wie man das Framework nutzt. Rückblick auf unseren Schreibstil.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage