开启辅助访问
帐号登录 |立即注册

thinkphp5.0模版常用标签(tp5模板调用标签)

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

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

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

变量输出 :

在控制器中我们给模板变量赋值
$this->assign('host','www.xmsmwl.cn');
return $this->fetch();
然后就可以在模板中使用:
{$host}

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

数组变量使用:
$user['name'] = 'ThinkPHP';
$user['email'] = 'admin@thinkphp.cn';
$view->assign('user',$user);

在模板中我们可以用下面的方式输出
Name:{$user.name}
Email:{$user.email}

或者用下面的方式也是有效:
Name:{$user['name']}
Email:{$user['email']}

函数使用

往往需要对模板输出变量使用函数,可以使用:
{$user.name|md5} {:md5($user.name)}

如果函数有多个参数需要调用,则使用需要用###标识变量位置
{$create_time|date="y-m-d",###}{:date(‘y-m-d’,$create_time)}

也可以直接这样写使用:加函数名使用
{:substr(strtoupper(md5($name)),0,3)}

默认值使用:

我们可以给变量输出提供默认值
{$user.nickname|default="这家伙很懒,什么也没留下"}


条件判断IF标签使用:

IF标签可以用来定义复杂的条件判断,例如:
{if condition="($name eq 1) OR ($name gt 100) "}
    value1
{elseif condition="$name eq 2" /}
    value2
{else /}
    value3
{/if}
//注意:在condition属性中可以支持eq等判断表达式
//不支持带有”>”、”<”等符号的用法,因为会混淆模板解析

可以在condition属性里面使用php代码,例:
{if condition="count($arr) gt 5"}
    数组元素个数大于5个
{else /}
    数组元素个数小于5个
{/if}


运算符应用:

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


三元运算应用:
{$status? '正常' : '错误'}


原样输出:

可以使用literal内置标签来防止模板标签被解析:
{literal}
    Hello,{$name}!
{/literal}


循环输出标签

VOLIST标签:
Volist标签的name属性表示模板赋值的变量名称,因此不可随意在模板文件中改变。id表示当前的循环变量,可以随意指定,但确保不要和name属性冲突,
{volist name="list" id="vo"}
    <p>{$vo.id}:{$vo.name}</p>
{/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。


switch标签:

多条件标签
{switch 变量名}
    {case 1}值为1{/case}
    {case 1}值为2{/case}
    {case 1}值为3{/case}
    {default /}值为其他
{/switch}
case属性支持多个条件的判断

对于case属性多个条件的判断,使用”|”进行分割
{switch data.sex|intval}
    {case 16|17|18}值为16,17,18其中一个{/case}
    {default /}值为其他
{/switch}


比较标签:

eq或者 equal:等于
neq 或者notequal:不等于
gt:大于
egt:大于等于
lt:小于
elt:小于等于
heq:恒等于
nheq:不恒等于

比较标签的用法基本是一致的,区别在于判断的条件不同,格式如下:
{比较标签 name="变量" value="值"}内容{/比较标签}


in标签与range标签:

in 标签 in 标签用于某个模板变量是否在某个范围之内,格式如下:
{in name="变量名" value="值1,值2,..."}在value值范围输出内容{/in}

notin 标签 对应的notin 标签,为 in 标签的反义,即判断不在某个范围内:
{notin name="变量名" value="值1,值2,..."}不在value值范围输出内容{/notin}

in和notin两个标签合并起来等同于:
{in name="变量名" value="值1,值2,..."}在value值范围输出内容{else /}不在value值范围输出内容{/in}

range 标签 in 和 notin 标签也可以使用 range 标签来替代:
{range name="变量名" value="值1,值2,..." type="in" }在value值范围输出内容{/range}
上面的例子相当于 in 标签,当 type 属性的值为 notin 时就相当于 notin 标签。


回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

友情链接
  • 艾Q网

    提供设计文章,教程和分享聚合信息与导航工具,最新音乐,动漫,游戏资讯的网站。