模板标签

模板文件可以包含普通标签和标签库标签,标签的定界符都可以重新配置。

普通标签用于变量输出和模板注释,普通模板标签默认以{ 和 } 作为开始和结束标识,并且在开始标记紧跟标签的定义,如果之间有空格或者换行则被视为非模板标签直接输出

标签库标签可以用于模板变量输出、文件包含、条件控制、循环输出等功能,而且完全可以自己扩展功能。

配置文件修改:

 

变量输出

在控制器中我们给模板变量赋值

$this->assign('data','thinkphp');

return $this->fetch();

然后就可以在模板中使用:

Hello,{$name}!

注意模板标签的{和$之间不能有任何的空格,否则标签无效。

如果是数组变量

$data['name'] = 'ThinkPHP';

$data['email'] = 'thinkphp@qq.com';

$view->assign('data',$data);

在模板中我们可以用下面的方式输出

Name:{$data.name}

Email:{$data.email}

或者用下面的方式也是有效:

Name:{$data['name']}

Email:{$data['email']}

使用函数

往往需要对模板输出变量使用函数,可以使用:

{$data.name|md5} {:md5($data.name)}

如果函数有多个参数需要调用,则使用需要用###标识变量位置

{$create_time|date="y-m-d",###}{:date(‘y-m-d’,$create_time)}

也可以直接这样写使用:加函数名使用

{:substr(strtoupper(md5($name)),0,3)}

使用默认值

我们可以给变量输出提供默认值

{$user.nickname|default="这家伙很懒,什么也没留下"}

使用运算符

我们可以对模板输出使用运算符,包括对“+”“-” “*” “/”和“%”的支持。

 

三元运算

模板可以支持三元运算符

{$status? '正常' : '错误'}

原样输出

可以使用literal标签来防止模板标签被解析:

{literal}

Hello,{$name}!

{/literal}

内置标签


 

循环输出标签

VOLIST标签:

Volist标签的name属性表示模板赋值的变量名称,因此不可随意在模板文件中改变。id表示当前的循环变量,可以随意指定,但确保不要和name属性冲突,

{volist name="list" id="vo"}

{$vo.id}:{$vo.name}<br/>

{/volist}

如果没有指定key属性的话,默认使用循环变量i,

{volist name="list" id="vo" key="k" }

{$k}.{$vo.name}{/volist}

支持输出查询结果中的部分数据

{volist name="list" id="vo" offset="5" length='10'}

{$vo.name}

{/volist}

输出偶数记录:mod显示的行数;没显示2行再从1开始

{volist name="list" id="vo" mod="2" }

{eq name="mod" value="1"}{$vo.name}{/eq}{/volist}

FOREACH标签

foreach标签类似与volist标签,只是更加简单,没有太多额外的属性

{foreach $list as $vo} 

{$vo.id}:{$vo.name}{/foreach}

name表示数据源 item表示循环变量。

{foreach name="list" item="vo" key="k"}

{$vo.id}:{$vo.name}

{/foreach}

FOR标签

{for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" }{/for}

开始值、结束值、步进值和循环变量都可以支持变量,开始值和结束值是必须,其他是可选。comparison 的默认值是lt即为小于的意思,name的默认值是i,步进值的默认值是1,