视图渲染
- display 获取具体内容,并自动输出
$this->display();
同名模板$this->display('showView');
showView模板$this->display('Index:add');
index目录下的add模板$this->display('Admin@Index:add');
Admin模块下的Index目录下的add模板$this->display('./add.html');
完整的模板名称
- fetch 获取具体内容,不会自动输出
模板替换
最后两个最常用
自定义模板替换: 在config.php里面配置
'TMPL_PARSE_STRING' => array (
'__PUBLIC_ADMIN__'=>'/Public/Admin'
)
复制代码
模板赋值
$this->assign('msg',$msg);
最常用$this->display();
赋值操作一定要在渲染之前 使用模板赋值:
变量
- TP模板引擎显示msg
{$msg}
- PHP原生
<?php echo $msg;?>
数组
- TP模板引擎显示具体data数组内数据内容
{$data.name}
- PHP原生
对象
- TP模板引擎显示具体data数组内数据内容
{$data:name} 或 {$data->name}
系统变量
在模板中使用系统变量都是$Think
开头
模板函数
模板运算符
a+b={$a+$b}
数组运算:{$data['price']*$data['num']}
不在支持点语法,需要用原生
内置标签
- foreach
<foreach name="data" item="val" key="k">
下标{$k}---name:{$val.name}---version:{$val.version};
</foreach>
复制代码
- if
- eq =
- neq !=
- gt >
- egt >=
- lt <
- elt <=
- heq ==
- nheq !==
<if condition="$day eq 7"> xxx
<elseif condition=""/> xxx
<else/> xxx
</if>
复制代码
- 比较标签
<eq name="month" value="12">
快过年了
<else />
一年才开始
<eq/>
复制代码
- volist标签
<volist name="data" id="val" offset="2" length="6" key="index">
循环原始下标:{$key}---{$index}---{$mod}---{$val.name}<br/>
</volist>
复制代码
公用模板
<include file="Public/header" />
模板继承
在父模板中使用 <block name="xxx"></block>
在子模板中使用 <extend name="xxx"/>