Heim  >  Artikel  >  Backend-Entwicklung  >  Verwendung der verschachtelten Schleife des Volist-Tags von Thinkphp

Verwendung der verschachtelten Schleife des Volist-Tags von Thinkphp

不言
不言Original
2018-06-06 16:23:561993Durchsuche

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 3da5ee660f26a047cce0b9503e43e613 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>

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>

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;);

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 3da5ee660f26a047cce0b9503e43e613 liest thinkphp im Hintergrund automatisch jede Datenzeile.

$parent=$Class->select();

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();   
}

3. Zum Schluss:

$this->assign(&#39;list&#39;,$parent);

Ausgabe anzeigen!

Mit diesem Programm erhalten Sie ein tieferes Verständnis des 3da5ee660f26a047cce0b9503e43e613-Tags. Tatsächlich kann der Name des 3da5ee660f26a047cce0b9503e43e613-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 3da5ee660f26a047cce0b9503e43e613-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 2c7953a8f6f793cfefe6eaa0b0257de7 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!

Stellungnahme:
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