Home  >  Article  >  Backend Development  >  Detailed explanation of using ThinkPHP template engine

Detailed explanation of using ThinkPHP template engine

不言
不言Original
2018-05-10 10:02:381202browse

This article mainly introduces the detailed explanation of the use of ThinkPHP template engine. It has certain reference value. Now I share it with everyone. Friends in need can refer to it.

The thinkphp system supports native PHP templates, and it itself It has a built-in efficient compiled template engine based on XML. The template engine used by the system by default is the built-in template engine. For detailed usage of tags of this template engine, please refer to the template engine section.

ThinkPHP has a built-in template engine to define template files and use advanced features such as loading files, template layout, and template inheritance.

Each template file will generate a compiled cache file during execution, which is actually a PHP file that can be run.

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>

In this way, ThinkPHP completes the parsing of the page, which involves template instantiation, positioning, assignment, rendering and use of tags.

View instantiation

None at the moment

Template assignment

Obviously, $name cannot be found when using it directly in the template of this variable. Templates must be assigned values ​​using the assign method. Before executing the rendering output function, the assign method establishes a mapping relationship between the internal variables of the function and the template variables.

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

After assigning a value, you can use {$nameA} in the template file to output the variable.

Template rendering

When the data is ready to be rendered on the page, you also need to specify the html file as the rendering template and pass in the example parameter when executing the fetch method for the current function. .

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

Template tag

Using built-in tags in template files can help us loop and judge variables in the template. It uses a pair of curly braces {tag} {/tag} as the opening and closing tags. The tag attribute or value must be immediately followed between { and }, and the presence of spaces and newlines cannot be parsed during rendering.

The volist label is one of the built-in labels, usually used to loop through an array variable.

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

allName is a variable assigned through the template. It can now be used directly on the template. Obviously it is an array, and the volist tag performs a loop operation on it.

Some commonly used attributes of volist tags:

prop name id
key Array name Current element
value allName vo

There are several internal variables {$key} {$i} hidden in volist, which represent the array subscript and the number of loops respectively.

Built-in tags

There are many built-in tags that are as useful as volist:

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

The above is the entire content of this article, and more For more related content, please pay attention to the PHP Chinese website.

Related recommendations:

thinkPHP template examples of how to use functions

##thinkPHP template arithmetic operation related function usage analysis



The above is the detailed content of Detailed explanation of using ThinkPHP template engine. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn