thinkPHP2

267 阅读1分钟

视图渲染

  • 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"/>