Maison  >  Article  >  développement back-end  >  Analyse de la sortie variable du moteur de modèles ThinkPHP

Analyse de la sortie variable du moteur de modèles ThinkPHP

不言
不言original
2018-06-08 17:22:441494parcourir

Cet article présente principalement l'utilisation de la sortie variable du moteur de modèles ThinkPHP et analyse l'utilisation courante et les compétences d'utilisation de la sortie variable. Il est d'une grande valeur pratique. Les amis dans le besoin peuvent s'y référer

Ceci. l'article analyse ThinkPHP avec des exemples Utilisation de la sortie variable dans le moteur de modèles. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :

Nous savons déjà que nous pouvons utiliser la méthode assign dans Action pour attribuer des valeurs aux variables du modèle. Comment afficher la valeur de la variable dans le fichier modèle après l'avoir attribuée ?

Si nous attribuons une variable de modèle de nom dans Action :

$name = 'ThinkPHP';
$this->assign('name',$name);

Utilisez le moteur de modèle intégré pour afficher la variable, utilisez-la simplement dans le fichier modèle :
{$ name>

Le résultat après la compilation du modèle est

<?php echo($name);?>

Lorsqu'il est finalement exécuté, le résultat de sortie de ThinkPHP peut être affiché à la position de l'étiquette. Notez qu'il ne peut y avoir d'espace entre. { et $ dans l'étiquette du modèle. Sinon, l'étiquette n'est pas valide. La balise de début par défaut pour les balises ordinaires est {, et la balise de fin est}. Elle peut également être modifiée en définissant TMPL_L_DELIM et TMPL_R_DELIM. Par exemple, nous définissons dans le fichier de configuration du projet :

&#39;TMPL_L_DELIM&#39;=>&#39;<{&#39;,  
&#39;TMPL_R_DELIM&#39;=>&#39;}>&#39;,

. la balise de sortie de variable ci-dessus est Elle doit être remplacée par :

<{$name}>

Nous utiliserons la définition de balise par défaut pour expliquer le contenu suivant. Le premier paramètre de la méthode d'affectation est le nom de la variable utilisé dans le fichier modèle. . S'il est modifié par le code suivant :

$name = &#39;ThinkPHP&#39;;
$this->assign(&#39;name2&#39;,$name);

La sortie utilisant {$name} sera invalide. {$name2} doit être utilisée pour afficher la valeur de la variable de modèle si nous en avons besoin. attribuez un objet de données utilisateur à la variable de modèle :

$User = M(&#39;name&#39;);
$user = $User->find(1);
$this->assign(&#39;user&#39;,$user);

C'est-à-dire que $user est en fait une variable de tableau. Nous pouvons utiliser la méthode suivante pour générer les valeurs associées :

{$user[&#39;name&#39;]}//输出用户的名称
{$user[&#39;email&#39;]} //输出用户的email地址
<.>Si $user est un objet au lieu d'un tableau

$User = M(&#39;name&#39;);
$User->find(1);
$this->assign(&#39;user&#39;,$User);
Vous pouvez utiliser la méthode suivante pour générer les valeurs d'attribut associées :

{$user:name}// 输出用户的名称
{$user:email} // 输出用户的email地址
Après la version 3.1, l'attribut de classe. La méthode de sortie a été ajustée pour prendre en charge l'écriture d'objets PHP natifs, donc les balises ci-dessus doivent être remplacées par :

{$user->name}// 输出用户的名称
{$user->email} // 输出用户的email地址
Afin de faciliter la définition du modèle, la syntaxe par points peut également être prise en charge. Par exemple, celle ci-dessus.

{$user[&#39;name&#39;]}// 输出用户的名称
{$user[&#39;email&#39;]} // 输出用户的email地址
peut être remplacé par

{$user.name}
{$user.email}
Étant donné que la sortie par défaut de la syntaxe point est le mode tableau, les deux méthodes ci-dessus sont équivalentes sans configuration. Nous pouvons déterminer l'effet de sortie du point. syntaxe en configurant le paramètre TMPL_VAR_IDENTIFY. Prenons comme exemple le résultat suivant : {$user.name>

Si TMPL_VAR_IDENTIFY est défini sur array, alors

{$user.name} est équivalent à {$user['name']}, qui est la variable du tableau de sortie

Si TMPL_VAR_IDENTIFY est défini sur obj, alors

{$user.name} est équivalent à {$user : name}, qui est l'attribut de l'objet de sortie.

Si TMPL_VAR_IDENTIFY est laissé vide, le système déterminera automatiquement si la variable à générer est un tableau ou un objet. Cette méthode affectera l'efficacité dans une certaine mesure et ne prend en charge que les tableaux à deux dimensions et à deux dimensions. attributs d'objet de niveau.

S'il s'agit de la sortie d'un tableau multidimensionnel ou d'un attribut d'objet multicouche, vous pouvez utiliser la méthode de définition suivante :

{$user.sub.name}//使用点语法输出
ou utiliser

{$user[&#39;sub&#39;][&#39;name&#39;]}// 输出三维数组的值  
{$user:sub:name}// 输出对象的多级属性
Ce qui précède est le contenu complet de l'article, j'espère qu'il sera utile à l'apprentissage de tout le monde. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Utilisation des classes d'action dans la conception de l'architecture du programme Laravel

Sortie du jugement de plage du modèle ThinkPHP dans l'utilisation des balises et des balises Range

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