ThinkPHP学习笔记(二):ThinkPHP框架的模板技术
1)建立项目模板
Lib/Action/IndexAction.class.php 里的方法 index 输出时对应的模板文件为 Tpl/Index/index.html,详见模板输出;
// 输出时使用 display 方法
$this->display();
// 在该方法里输出另外一个模板文件使用 Tpl/Index/test.html
$this->display("Index/test");
2)模板的赋值和输出
模板变量赋值可以使用 assign 或 $this 方法;
// assign 使用方法
$name = "visionz";
$date = date("Y-m-d");
$this->assign("name", $name)->assign("sex", "man")->assign("today", $date);
// $this 使用方法
$this->name2 = $name;
// 模板变量输出输出
<?php
echo $name . "<br />";
echo $sex . "<br />";
echo $today . "<br />";
echo $name2 . "<br />";
?>
3)ThinkPHP模板引擎之变量输出和运算
使用自带的模板引擎对变量进行输出,则不需要加<?php ?>
// 控制器变量赋值
$me["name"] = "visionz";
$me["age"] = "25";
$me["sex"] = "boy";
$this->assign("me", $me);
// 视图变量输出
{$me["name"]} <br /> // visionz
{$me.name} <br /> // visionz
{$me.sex|default="man"} <br> // 默认"man",赋值后"boy"
// 视图变量运算
{$me["age"] + 1} // 26(写成{$me.age}无法成功运算)
4)ThinkPHP模板引擎之调用函数和系统参数
模板变量的函数调用格式为:{$varname|function1|function2=arg1,arg2,### }
// 控制器变量赋值
$this->now=time();
// 视图变量输出
{$me["name"]|md5|substr=0,5} <br /> //75283
{$now|date="Y-m-d H:i:s", ###} <br /> //2016-12-14 18:57:53
{$Think.now} <br /> //2016-12-14 6:57 pm
{$Think.version} <br /> //3.1.3
{$Think.server.http_host} //192.168.2.110
5)ThinkPHP模板引擎之volist和foreach循环
Volist标签主要用于在模板中循环输出数据集或者多维数组,详见Volist标签;
foreach标签也是用于循环输出,详见Foreach标签;
// 控制器变量赋值
$person = array(
1 => array("name"=>"Jack", "age"=>"18"),
2 => array("name"=>"Tom", "age"=>"19"),
3 => array("name"=>"Peter", "age"=>"20"),
4 => array("name"=>"Mary", "age"=>"21"),
);
$this->assign("person", $person);
// 视图变量输出
<volist name="person" id="data" offset="1" length="2" empty="我没数据">
{$data["name"]}------{$data["age"]}<br />
</volist>
<br />
<foreach name="person" item="data">
{$data["name"]}------{$data["age"]}<br />
</foreach>
// 显示
Tom------19
Peter------20
Jack------18
Tom------19
Peter------20
Mary------21
6)ThinkPHP模板引擎之FOR循环
For标签用于实现for循环,详见For标签;
用法:<for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" ></for>
// 比较
eq ==; neq !=; gt >; egt >=; lt <; elt <=; heq ===; nheq !==;
// 模板使用
<for start="1" end="10" comparison="elt" name="k">
{$k}<br />
</for>
7)ThinkPHP模板引擎之IF判断
if标签可用来定义复杂的条件判断,详见IF标签;
// elseif 和 else 后面必须加上闭合标签“/”,否则会导致错误
<if condition="$num gt 10"> num 大于 10
<elseif condition="$num lt 10" /> num 小于 10
<else /> num 等于 10
</if>
8)ThinkPHP模板引擎之Switch判断
模板引擎支持Switch标签,详见Switch标签;
用法:
<switch name="变量" >
<case value="值1" break="0或1">输出内容1</case>
<case value="值2">输出内容2</case>
<default />默认情况
</switch>
实例:
// 控制器变量赋值
$name = "xiaohuang";
$this->assign("name", $name);
// 视图变量输出
<switch name="name">
<case value="laoshi">小明,out</case>
<case value="xiaohong|xiaohuang">小明,you out</case>
<default />out
</switch>
// 显示
out
9)ThinkPHP模板引擎之比较标签
模板引擎提供了丰富的判断标签,详见比较标签;
用法:<比较标签 name="变量" value="值">内容</比较标签>
// 控制器变量赋值
$this->assign("num", 11);
// 视图变量输出
<neq name="num" value="12">num != 12</neq><br />
<eq name="num" value="10">num = 10<else />num != 10</eq><br />
<compare name="num" value="11" type="eq">num = 11<else />num != 11</compare><br />
// 显示
num != 12
num != 10
num = 11
10)ThinkPHP模板引擎之区间标签
区间标签用于判断某个变量是否在某个范围之内,包括 in、notin、between、notbetween、range几种,详见范围判断标签;
用法:
<in name="id" value="1,2,3">输出内容1</in>
<notin name="id" value="1,2,3">输出内容2</notin>
<in name="id" value="1,2,3">输出内容1<else/>输出内容2</in>
<between name="id" value="1,10">输出内容1</between>
<notbetween name="id" value="1,10">输出内容1</notbetween>
// range 的type只能填 in 或 notin,不能写 between
<range name="id" value="1,2,3" type="in">输出内容1</range>
11) ThinkPHP模板引擎之三元运算符
模板可以支持三元运算符,详见三元运算;
用法:
// 三元运算符中暂时不支持点语法。
{$status?"正常":"错误"}
{$info["status"]?$info["msg"]:$info["error"]}
12)ThinkPHP模板引擎之案例实战
// 控制器变量赋值
$person = array(
1 => array("name"=>"Jack", "age"=>"16"),
2 => array("name"=>"Tom", "age"=>"17"),
3 => array("name"=>"Peter", "age"=>"28"),
4 => array("name"=>"Mary", "age"=>"19"),
);
$this->assign("person", $person);
// 视图变量输出
<foreach name="person" item="data">
<egt name="data["age"]" value="18">{$data.name}已经成年了<else />{$data.name}还是个孩子</egt> <br />
</foreach>
// 显示
Jack还是个孩子
Tom还是个孩子
Peter已经成年了
Mary已经成年了
在模板里可以用<?php ?>
输出PHP语句,但是不推荐使用,作为代替可以使用<php></php>
进行输出;
<php>
echo $person[1]["name"]
</php>
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: ThinkPHP学习笔记(一):ThinkPHP 框架的简单操作