Home  >  Article  >  Backend Development  >  Detailed explanation of how to use ThinkPHP template engine

Detailed explanation of how to use ThinkPHP template engine

墨辰丷
墨辰丷Original
2018-05-22 16:08:042344browse

thinkphp system supports native PHP templates, and 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>

This way ThinkPHP completes the parsing of the page, which involves template instantiation, positioning, assignment, rendering and the 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 assignment, 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 determine 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:


##propnameid##keyvalue There are several internal variables {$key} {$i} hidden in volist, which represent The array index and the number of loops are specified.
array name current element
allName vo

Built-in tags

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

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


Related recommendations:

Node.js uses jade

Template engineDetailed steps

node front-end development

template engineJade usage steps detailed explanation

node front-end

template engineJade tag Detailed explanation of usage

The above is the detailed content of Detailed explanation of how to use 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