Verwendung der verschachtelten Schleife des Volist-Tags von Thinkphp

不言
Freigeben: 2023-03-30 09:50:01
Original
2029 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Methode von ThinkPHP zum Implementieren der Volist-Tag-Verschachtelungsschleife vorgestellt. Freunde, die sie benötigen, können darauf verweisen

In diesem Artikel wird die Verwendung der Volist-Tag-Verschachtelung von ThinkPHP wie folgt ausführlicher erläutert:

Zunächst gibt es im Thinkphp-Entwicklungshandbuch eine Erklärung zur Verschachtelung von Wie folgt:

Tag-Verschachtelung:

Die Template-Engine unterstützt die mehrstufige Verschachtelungsfunktion von Tags, und Sie können angeben, ob die Tags in der Tag-Bibliothek verschachtelt werden können.
Unter den integrierten Tags im System sind volist (und sein Alias ​​iterate), switch, if, elseif, else, foreach, Compare (einschließlich aller Vergleichs-Tags), (not) present, (not) empty, ( nicht) definierte Tags können verschachtelt werden. Zum Beispiel:

<volist name="list" id="vo">
<volist name="vo[&#39;sub&#39;]" id="sub">
{$sub.name}
</volist>
</volist>
Nach dem Login kopieren

Das obige Tag kann verwendet werden, um eine Doppelschleife auszugeben.

Die Standardverschachtelungsebene beträgt 3 Ebenen, sodass die Verschachtelungsebene 3 Ebenen nicht überschreiten kann. Wenn Sie mehr Ebenen benötigen, können Sie den Konfigurationsparameter TAG_NESTED_LEVEL angeben.
Aber wie genau soll „list“ in Action ein Wert zugewiesen werden? Wie aus der Beschreibung hervorgeht, sollte die Liste ein zweidimensionales Array sein. Nachfolgend finden Sie einen Testcode, der nach dem Testen verwendet werden kann.

$Baojia=new Model(&#39;baojia&#39;);
$Class=new Model(&#39;class&#39;);
$parent=$Class->select();   
foreach($parent as $n=> $val){
$parent[$n][&#39;voo&#39;]=$Baojia->where(&#39;belongto=\&#39;&#39;.$val[&#39;name&#39;].&#39;\&#39;&#39;)->select();
}
$this->assign(&#39;list&#39;,$parent);
<volist name="list" id="vo">
    {$vo.name}<BR>
<volist name="vo[&#39;voo&#39;]" id="sub">
 {$sub.name}
</volist><BR>
</volist>
Nach dem Login kopieren

In der Datenbank sind zwei Tabellen definiert, eine ist eine Angebotstabelle und die andere ist eine Klassifizierungstabelle. Die Funktion besteht darin, die Klassifizierung wie ein Baummenü anzuzeigen. Unter jeder Klassifizierung befindet sich das Angebot jedes Modells.

Die Hauptfunktionen des Codes sind:

Erstellen Sie zuerst das Modell:

$Baojia=new Model(&#39;baojia&#39;);
$Class=new Model(&#39;class&#39;);
Nach dem Login kopieren

2. Fragen Sie dann die Daten in der Klassifizierung ab Wir wissen, dass die Datenbankabfrage Daten in zweidimensionaler Form zurückgibt, ähnlich einer Tabelle. Wenn wir ein einzelnes Datenelement herausnehmen, entspricht dies dem Lesen jeder Datenzeile. Beim Aufruf von liest thinkphp im Hintergrund automatisch jede Datenzeile.

$parent=$Class->select();
Nach dem Login kopieren

Speichern Sie die Daten im Zitat in $parent, wobei $n die Seriennummer des $parent-Arrays ist, was der in $parent gespeicherten Datentabelle entspricht. Jede Zeile fügt einen Index hinzu, der zeigt zu Zitaten, die in diese Kategorie fallen.

foreach($parent as $n=> $val){
$parent[$n][&#39;voo&#39;]=$Baojia->where(&#39;belongto=\&#39;&#39;.$val[&#39;name&#39;].&#39;\&#39;&#39;)->select();   
}
Nach dem Login kopieren

3. Zum Schluss:

$this->assign(&#39;list&#39;,$parent);
Nach dem Login kopieren

Ausgabe anzeigen!

Mit diesem Programm erhalten Sie ein tieferes Verständnis des -Tags. Tatsächlich kann der Name des -Tags nur einem Datenbanktabellentyp zugewiesen werden. Natürlich kann es sich auch um einen Array-Typ handeln. Da die durch die Datenbankabfrage selbst erhaltenen Daten vom Array-Typ sind, denken Sie beim Aufrufen des -Tags auf der Ansichtsseite immer daran, dass der Name jedes Tags angegeben ist Die Ebene muss vom Typ Array sein, etwa so. Im Programm ist die äußerste Ebene die Variable $parent, die wir ursprünglich definiert haben Wird durch Abfragen der Klassentabelle erhalten. Die innere Ebene ist die Datentabelle, auf die $parent[$n]['voo'] zeigt. , das sind die entsprechenden Daten in der Angebotstabelle.

Durch diese Analyse ist die Logik sehr klar, indem aus einem Beispiel Schlussfolgerungen gezogen werden. Wenn Sie mehr Ebenen benötigen, können Sie den Konfigurationsparameter TAG_NESTED_LEVEL angeben.

Auf diese Weise können mehrere Zyklen wie Land->Provinz->Stadt->Kreis->Gemeinde realisiert werden

Verwandte Empfehlungen:

So verwenden Sie die HTML-Vorlagen-Tags von thinkPHP

Beispiel für die von thinkPHP implementierte dreistufige Verknüpfungsfunktion von Provinzen und Gemeinden

ThinkPHP-Vorlagenbeurteilungsausgabe Verwendung leerer Tags

Das obige ist der detaillierte Inhalt vonVerwendung der verschachtelten Schleife des Volist-Tags von Thinkphp. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!