欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ThinkPHP内置标签 —— Volist、Foreach、For 标签属性

程序员文章站 2022-05-10 16:47:18
...

变量输出使用不同标签就足够了,但是要完成其他的控制、循环和判断功能,就需要借助模板引擎的标签库功能了,系统内置标签库的所有标签无需引入标签库即可直接使用。

标签名 作用 包含属性
include 包含外部模板文件(闭合) file
import 导入资源文件(闭合 包括js css load别名) file,href,type,value,basepath
volist 循环数组数据输出 name,id,offset,length,key,mod
foreach 数组或对象遍历输出 name,item,key
for For循环数据输出 name,from,to,before,step
switch 分支判断输出 name
case 分支判断输出(必须和switch配套使用) value,break
default 默认情况输出(闭合 必须和switch配套使用)
compare 比较输出(包括eq neq lt gt egt elt heq nheq等别名) name,value,type
range 范围判断输出(包括in notin between notbetween别名) name,value,type
present 判断是否赋值 name
notpresent 判断是否尚未赋值 name
empty 判断数据是否为空 name
notempty 判断数据是否不为空 name
defined 判断常量是否定义 name
notdefined 判断常量是否未定义 name
define 常量定义(闭合) name,value
assign 变量赋值(闭合) name,value
if 条件判断输出 condition
elseif 条件判断输出(闭合 必须和if标签配套使用) condition
else 条件不成立输出(闭合 可用于其他标签)
php 使用php代码

Volist 标签

volist标签通常用于查询数据集(select 方法),对于查询出来的结果数组进行遍历输出。

首先赋值:

$User = M("User");
$list = $User->limit(10)->select();
$this->assign('list',$list);
$this->display();

 页面的展示:

<volist name="list" id="vo">
{$vo.id} : {$vo.name} <br/>
</volist>

 输出结果:1  : tom

    3  : jack

    5   : jetty

 

1.offset 、 length属性 —— 输出部分数据

<volist name="list" id="vo" offset="4" length="5"> 
	{$vo.id} : {$vo.name}  <br/>
</volist>

//显示的是第5条到第10条数据

结果:
18 : jetty 
19 : tom2 
20 : tom3
21 : tom4 
22 : tom5

 

 2.mod属性 —— 将数据分块输出

/* 输出偶数数据
*  第一行的mod值是将数据分成2个一组,序号都是从0开始
*  第二行 当mod值为1时输出数据,也就是显示偶数的数据
*/
<volist name="list" id="vo" mod="2">
	<eq name="mod" value="1">{$vo.name}</eq>
</volist>


/* 控制一行记录的换行
* 同理,先将数据分成4个一组,都是从0开始标序号 输出所有数据
*  当每组中的序号为3 也就是显示最后一个数据后,输出换行符
*/
<volist name="list" id="vo" mod="4">
      {$vo.name}
	<eq name="mod" value="3"><br/></eq>
</volist>

 

 3.empty —— 数据为空提示

<volist name="list" id="vo" empty="暂时没有数据显示">
	{$vo.id}|{$vo.name}
</volist>
//如果没有可显示的数据 就会输出 "暂时没有数据显示"提示

/*
*   empty 支持向页面传值
*/
$this->assign('empty','<span class="empty">没有可显示的数据</span>');
$this->assign('list',$list);
$this->display();

//模板中使用:
<volist name="list" id="vo" offset="10" length="3" empty="$empty">
	{$vo.id}|{$vo.name}
</volist>

 

 4.key属性 —— 输出数据序号

<volist name="list" id="vo" empty="$empty" key="k">
	{$k} :  {$vo.name}
</volist>
//序号 从1开始

/* 如果key属性没有写,默认的可以用i表示
* 结果与上同  序号也是从1开始
*/
<volist name="list" id="vo" empty="$empty">
	{$i}  {$vo.id}|{$vo.name}
</volist>

注:也可以只用key变量,此时序号从0开始。

 Foreach标签

 

foreach标签类似与volist标签,只是更加简单,没有太多额外的属性

name : 表示数据源     item : 表示循环变量

<foreach name="list" item="vo">
	{$key}|{$vo}
</foreach>

//也可以定义索引的变量名
<foreach name="list" item="vo" key="k">
	{$k}|{$vo}
</foreach>
//索引都是从0开始	

 For 标签

格式:

<for start="开始值" end="结束值" comparison="判断条件" step="步进值" name="循环变量名">
</for>

开始值、结束值、步进值和循环值都可以支持变量,开始值和结束值是必须,其他是可选。comparison的默认值是lt;name的默认值是i,步进值的默认值是1

<for start="1" end="100">
	{$i}
</for>
/*
 解析后的代码是:
	for($i=1; $i<100; $i+=1){
		echo $i
	}
*/
/**
*	for循环输出user对象的数据值,k是循环变量名
*/
<for start="1" end="6" name="k">
	{$user[$k]['id']}  : {$user[$k]['username']}  <br/>
</for>