1)建立项目模板
Lib/Action/IndexAction.class.php 里的方法 index 输出时对应的模板文件为 Tpl/Index/index.html,详见模板输出;
// 输出时使用 display 方法
$this->display();
// 在该方法里输出另外一个模板文件使用 Tpl/Index/test.html
$this->display('Index/test');
2)模板的赋值和输出
模板变量赋值可以使用 assign 或 $this 方法;
// assign 使用方法
$name = 'visionz';
$date = date("Y-m-d");
$this->assign('name', $name)->assign('sex', 'man')->assign('today', $date);
// $this 使用方法
$this->name2 = $name;
// 模板变量输出输出
<?php
echo $name . '<br />';
echo $sex . '<br />';
echo $today . '<br />';
echo $name2 . '<br />';
?>
3)ThinkPHP模板引擎之变量输出和运算
使用自带的模板引擎对变量进行输出,则不需要加<?php ?>
// 控制器变量赋值
$me['name'] = 'visionz';
$me['age'] = '25';
$me['sex'] = 'boy';
$this->assign('me', $me);
// 视图变量输出
{$me['name']} <br /> // visionz
{$me.name} <br /> // visionz
{$me.sex|default='man'} <br> // 默认'man',赋值后'boy'
// 视图变量运算
{$me['age'] + 1} // 26(写成{$me.age}无法成功运算)
4)ThinkPHP模板引擎之调用函数和系统参数
模板变量的函数调用格式为:{$varname|function1|function2=arg1,arg2,### }
// 控制器变量赋值
$this->now=time();
// 视图变量输出
{$me['name']|md5|substr=0,5} <br /> //75283
{$now|date='Y-m-d H:i:s', ###} <br /> //2016-12-14 18:57:53
{$Think.now} <br /> //2016-12-14 6:57 pm
{$Think.version} <br /> //3.1.3
{$Think.server.http_host} //192.168.2.110
5)ThinkPHP模板引擎之volist和foreach循环
Volist标签主要用于在模板中循环输出数据集或者多维数组,详见Volist标签;
foreach标签也是用于循环输出,详见Foreach标签;
// 控制器变量赋值
$person = array(
1 => array('name'=>'Jack', 'age'=>'18'),
2 => array('name'=>'Tom', 'age'=>'19'),
3 => array('name'=>'Peter', 'age'=>'20'),
4 => array('name'=>'Mary', 'age'=>'21'),
);
$this->assign('person', $person);
// 视图变量输出
<volist name='person' id='data' offset='1' length='2' empty='我没数据'>
{$data['name']}------{$data['age']}<br />
</volist>
<br />
<foreach name='person' item='data'>
{$data['name']}------{$data['age']}<br />
</foreach>
// 显示
Tom------19
Peter------20
Jack------18
Tom------19
Peter------20
Mary------21
6)ThinkPHP模板引擎之FOR循环
For标签用于实现for循环,详见For标签;
用法:<for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" ></for>
// 比较
eq ==; neq !=; gt >; egt >=; lt <; elt <=; heq ===; nheq !==;
// 模板使用
<for start='1' end='10' comparison='elt' name='k'>
{$k}<br />
</for>
7)ThinkPHP模板引擎之IF判断
if标签可用来定义复杂的条件判断,详见IF标签;
// elseif 和 else 后面必须加上闭合标签“/”,否则会导致错误
<if condition="$num gt 10"> num 大于 10
<elseif condition="$num lt 10" /> num 小于 10
<else /> num 等于 10
</if>
8)ThinkPHP模板引擎之Switch判断
模板引擎支持Switch标签,详见Switch标签;
用法:
<switch name="变量" >
<case value="值1" break="0或1">输出内容1</case>
<case value="值2">输出内容2</case>
<default />默认情况
</switch>
实例:
// 控制器变量赋值
$name = 'xiaohuang';
$this->assign('name', $name);
// 视图变量输出
<switch name="name">
<case value="laoshi">小明,out</case>
<case value="xiaohong|xiaohuang">小明,you out</case>
<default />out
</switch>
// 显示
out
9)ThinkPHP模板引擎之比较标签
模板引擎提供了丰富的判断标签,详见比较标签;
用法:<比较标签 name="变量" value="值">内容</比较标签>
// 控制器变量赋值
$this->assign('num', 11);
// 视图变量输出
<neq name="num" value="12">num != 12</neq><br />
<eq name="num" value="10">num = 10<else />num != 10</eq><br />
<compare name="num" value="11" type="eq">num = 11<else />num != 11</compare><br />
// 显示
num != 12
num != 10
num = 11
10)ThinkPHP模板引擎之区间标签
区间标签用于判断某个变量是否在某个范围之内,包括 in、notin、between、notbetween、range几种,详见范围判断标签;
用法:
<in name="id" value="1,2,3">输出内容1</in>
<notin name="id" value="1,2,3">输出内容2</notin>
<in name="id" value="1,2,3">输出内容1<else/>输出内容2</in>
<between name="id" value="1,10">输出内容1</between>
<notbetween name="id" value="1,10">输出内容1</notbetween>
// range 的type只能填 in 或 notin,不能写 between
<range name="id" value="1,2,3" type="in">输出内容1</range>
11) ThinkPHP模板引擎之三元运算符
模板可以支持三元运算符,详见三元运算;
用法:
// 三元运算符中暂时不支持点语法。
{$status?'正常':'错误'}
{$info['status']?$info['msg']:$info['error']}
12)ThinkPHP模板引擎之案例实战
// 控制器变量赋值
$person = array(
1 => array('name'=>'Jack', 'age'=>'16'),
2 => array('name'=>'Tom', 'age'=>'17'),
3 => array('name'=>'Peter', 'age'=>'28'),
4 => array('name'=>'Mary', 'age'=>'19'),
);
$this->assign('person', $person);
// 视图变量输出
<foreach name="person" item="data">
<egt name="data['age']" value="18">{$data.name}已经成年了<else />{$data.name}还是个孩子</egt> <br />
</foreach>
// 显示
Jack还是个孩子
Tom还是个孩子
Peter已经成年了
Mary已经成年了
在模板里可以用<?php ?>
输出PHP语句,但是不推荐使用,作为代替可以使用<php></php>
进行输出;
<php>
echo $person[1]['name']
</php>