模板标签
模板文件可以包含普通标签和标签库标签,标签的定界符都可以重新配置。
普通标签用于变量输出和模板注释,普通模板标签默认以{ 和 } 作为开始和结束标识,并且在开始标记紧跟标签的定义,如果之间有空格或者换行则被视为非模板标签直接输出。
标签库标签可以用于模板变量输出、文件包含、条件控制、循环输出等功能,而且完全可以自己扩展功能。
配置文件修改:
变量输出
在控制器中我们给模板变量赋值
$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,