Maison >développement back-end >tutoriel php >Explication détaillée de l'utilisation du moteur de modèles ThinkPHP

Explication détaillée de l'utilisation du moteur de modèles ThinkPHP

墨辰丷
墨辰丷original
2018-05-22 16:08:042444parcourir

Le système thinkphp prend en charge les modèles PHP natifs et dispose d'un moteur de modèles compilé efficace intégré basé sur XML. Le moteur de modèles utilisé par le système par défaut est le moteur de modèles intégré pour une utilisation détaillée des balises de ce moteur de modèles. , veuillez vous référer à la section Moteur de modèles.

ThinkPHP dispose d'un moteur de modèles intégré pour définir des fichiers de modèles et utiliser des fonctionnalités avancées telles que le chargement de fichiers, la disposition des modèles et l'héritage des modèles.

Chaque fichier modèle générera un fichier cache compilé lors de l'exécution, qui est en fait un fichier PHP pouvant être exécuté.

PHP

/*index/controller/example.php*/
 
use think\Controller;
 
class test extends Index {
 
  public function template (){
    $name = 'Jerry';
    $allName = [
      0 => "Jerry", 
      1 => "Tom"
    ];
 
    $this->assign('nameA',$name);
    $this->assign('allName',$allName);
 
    return $this->fetch('example');
  }
}


HTML

/*index/view/example.html*/
 
<span>{$nameA}</span>
 
{volist name="allName" id="vo"}
 
  <p data-sub="{$key}" data-index="{$i}">{$vo}</p>
 
{/volist}
 
 
Result

<br /><span>Jerry</span>
 
<p data-sub="0" data-index="1">Jerry</p>
 
<p data-sub="1" data-index="2">Tom</p>

De cette manière, ThinkPHP termine l'analyse de la page, qui implique l'instanciation du modèle, le positionnement, l'affectation, le rendu et l'utilisation de balises.

Afficher l'instanciation

Aucun pour l'instant

Affectation du modèle

Évidemment, il est introuvable lors de l'utilisation de $name directement dans le modèle de cette variable. Les modèles doivent se voir attribuer des valeurs à l'aide de la méthode assign. Avant d'exécuter la fonction de sortie de rendu, la méthode assign établit une relation de mappage entre les variables internes de la fonction et les variables du modèle.

$this->assign(&#39;name&#39;,$name);
$this->assign(&#39;allName&#39;,$allName);

Après l'affectation, vous pouvez utiliser {$nameA} dans le fichier modèle pour générer la variable.

Rendu du modèle

Lorsque les données sont prêtes à être rendues sur la page, vous devez également spécifier le fichier html comme modèle de rendu et transmettre le paramètre exemple lors de l'exécution de la méthode fetch pour la fonction actuelle.

return $this->fetch(&#39;example&#39;);

Balises de modèle

L'utilisation de balises intégrées dans les fichiers de modèles peut nous aider à parcourir les modèles, Déterminez les variables. Il utilise une paire d'accolades {tag} {/tag} comme balises d'ouverture et de fermeture. L'attribut ou la valeur de la balise doit être immédiatement suivi entre { et }, et la présence d'espaces et de nouvelles lignes ne peut pas être analysée lors du rendu. La balise

volist est l'une des balises intégrées et est généralement utilisée pour parcourir une variable de tableau.

{volist name="allName" id="vo"}
 
  <p data-sub="{$key}" data-index="{$i}">{$vo}</p>
 
{/volist}

allName est une variable attribuée via le modèle. Elle peut désormais être utilisée directement sur le modèle. Évidemment, il s'agit d'un tableau et la balise volist le fait. Opération en boucle.

Quelques attributs couramment utilisés de la balise volist :


prop name id
key 数组名 当前元素
value allName vo

Il y a plusieurs variables internes {$key} {$i} cachées dans volist, Représente respectivement l'indice du tableau et le nombre de boucles.

Balises intégrées

Il existe de nombreuses balises intégrées qui sont aussi utiles que volist :

<notempty name=""></notempty> //判断数据是否不为空 不为空则执行


Recommandations associées :

Node.js utilise jademoteur de modèlesÉtapes détaillées

Développement frontal du nœudMoteur de modèlesExplication détaillée des étapes d'utilisation de Jade

avant du nœud -finMoteur de modèles Explication détaillée de l'utilisation des balises Jade

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!

Déclaration:
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