Utilisation de la boucle imbriquée de la balise volist de Thinkphp

不言
Libérer: 2023-03-30 09:50:01
original
2035 Les gens l'ont consulté

Cet article présente principalement la méthode de ThinkPHP pour implémenter la boucle d'imbrication de balises volist. Les amis qui en ont besoin peuvent s'y référer

Cet article explique plus en détail l'utilisation de l'imbrication de balises volist de ThinkPHP comme suit :

Tout d'abord, dans le manuel de développement Thinkphp, il y a une explication sur l'imbrication des balises Comme suit :

Imbrication de balises :

Le moteur de modèles prend en charge la fonction d'imbrication à plusieurs niveaux des balises et vous pouvez spécifier si les balises de la bibliothèque de balises peuvent être imbriquées.
Parmi les balises intégrées au système, volist (et son alias iterate), switch, if, elseif, else, foreach, compare (y compris toutes les balises de comparaison), (pas) présent, (pas) vide, ( non) les balises définies peuvent être imbriquées. Par exemple :

<volist name="list" id="vo">
<volist name="vo[&#39;sub&#39;]" id="sub">
{$sub.name}
</volist>
</volist>
Copier après la connexion

Les balises ci-dessus peuvent être utilisées pour générer des doubles boucles.

Le niveau d'imbrication par défaut est de 3 niveaux, donc le niveau d'imbrication ne peut pas dépasser 3 niveaux. Si vous avez besoin de plus de niveaux, vous pouvez spécifier le paramètre de configuration TAG_NESTED_LEVEL.
Mais comment exactement attribuer une valeur à « list » dans Action ? Comme le montre la description, la liste doit être un tableau à deux dimensions. Vous trouverez ci-dessous un code de test qui peut être utilisé après le test.

$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>
Copier après la connexion

Deux tableaux sont définis dans la base de données, l'un est un tableau de cotation et l'autre est un tableau de classement. La fonction est d'afficher le classement comme un menu arborescent. Sous chaque classement se trouve la citation de chacun. modèle.

Les principales fonctions du code sont :

1. Créez d'abord le modèle :

$Baojia=new Model(&#39;baojia&#39;);
$Class=new Model(&#39;class&#39;);
Copier après la connexion

2. Interrogez ensuite les données dans la classification. important car nous le savons, la requête de base de données renvoie les données sous une forme bidimensionnelle similaire à un tableau. Lorsque nous retirons une seule donnée, cela équivaut à lire chaque ligne de données. Lors de l'appel de , l'arrière-plan thinkphp lira automatiquement chaque ligne de données.

$parent=$Class->select();
Copier après la connexion

Enregistrez les données de la citation dans $parent, où $n est le numéro de série du tableau $parent, qui est équivalent à la table de données stockée dans $parent. Chaque ligne ajoute un index. Cet index pointe vers des citations appartenant à cette catégorie.

foreach($parent as $n=> $val){
$parent[$n][&#39;voo&#39;]=$Baojia->where(&#39;belongto=\&#39;&#39;.$val[&#39;name&#39;].&#39;\&#39;&#39;)->select();   
}
Copier après la connexion

3. Enfin :

$this->assign(&#39;list&#39;,$parent);
Copier après la connexion

Affichez la sortie !

Grâce à ce programme, vous pouvez avoir une compréhension plus approfondie de la balise . En fait, lors des opérations de base de données, le nom de la balise bien sûr, il peut aussi s'agir d'un type de tableau, car les données obtenues par la requête de base de données elle-même sont de type tableau), lorsque nous appelons la balise sur la page d'affichage, surtout lorsqu'elle est imbriquée, rappelez-vous toujours que le nom de chacun la couche doit être de type tableau, comme ceci Dans le programme, la couche la plus externe, la liste ici est le $parent que nous avons initialement défini. Cette variable pointe vers la table de données. obtenu en interrogeant la table de classe. La couche interne , qui est la table de données pointée par $parent[$n]['voo'] , qui correspondent aux données correspondantes dans le tableau de cotation.

Grâce à cette analyse, la logique est très claire. Des boucles N-fold peuvent être obtenues en tirant des inférences à partir d'un exemple. Bien sûr, si vous avez besoin de plus de niveaux, vous pouvez spécifier le paramètre de configuration TAG_NESTED_LEVEL.

De cette manière, plusieurs cycles tels que pays->province->ville->comté->canton peuvent être réalisés

Recommandations associées :

Comment utiliser les balises de modèle HTML de thinkPHP

Exemple de la fonction de liaison à trois niveaux des provinces et des municipalités mise en œuvre par thinkPHP

Sortie de jugement du modèle ThinkPHP Utilisation des balises vides

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!