`

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

阅读更多

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

标签名 作用 包含属性
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>

 

 

 

分享到:
评论

相关推荐

    Thinkphp的volist标签嵌套循环使用教程

    系统内置的标签中,volist(及其别名iterate)、switch、if、elseif、else、foreach、compare(包括所有的比较标签)、(not)present、(not)empty、(not)defined等标签都可以嵌套使用。例如: &lt;volist name=...

    ThinkPHP之foreach标签使用概述

    ThinkPHP模板的foreach标签用于在模板中循环输出数据集或者对对象进行遍历输出。 相对于volist标签而言,foreach标签没有volist标签那么多的功能,却可以对对象进行遍历输出,而volist标签通常是用于输出数组。 ...

    ThinkPHP模板中判断volist循环的最后一条记录的验证方法

    应该都知道在smarty模板里面判断foreach循环是否是最后一个可以用$smarty.foreach.name.last来判断循环是否到了最后一条记录,在thinkphp的模板中常见的循环是volist,但是volist的各种属性中并没有直接判断最后一条...

    ThinkPHP采用volist实现三级循环代码实例

    本文以实例描述了ThinkPHP采用&lt;volist&gt;标签实现三级循环代码,具体操作步骤如下: 1. 三级循环需要三维数组,实现代码如下: function MakeTree($pid,$level) { $map['pid'] = $pid; $map['level'] = $level; $...

    ThinkPHP实战(夏磊)

    7.8.2foreach标签 1 7.8.3for标签 1 7.8.4switch标签 111 7.8.5比较标签 111 7.8.6empty标签 114 7.8.7defined标签 114 7.8.8标签嵌套 114 7.8.9import标签 115 7.8.使用原生PHP 115 7.8.11不解析输出 115 ...

    Thinkphp5.0框架视图view的循环标签用法示例

    主要介绍了Thinkphp5.0框架视图view的循环标签用法,结合实例形式分析了thinkPHP5框架视图view中的volist标签、foreach标签、for标签相关使用方法,需要的朋友可以参考下

    thinkphp标签实现bootsrtap轮播carousel实例代码

    由于轮播carousel第一个div需要设置active样式才能正常显示...使用volist标签在循环的同时可以取得下标(foreach,for标签实现不了) &lt;!-- carousel --&gt; &lt;volist name=bopic id=xt&gt; &lt;li data-target=#car

    thinkphp循环结构用法实例

    主要介绍了thinkphp循环结构用法,以实例形式讲解了for、volist及foreach的用法,是非常实用的技巧,需要的朋友可以参考下

    ThinkPHP模板中数组循环实例

    ThinkPHP开发过程中经常用到输出数组在模板中使用,一般select出来的数据都是二维数组,我们在模板中用volist标签就可以输出,今天开发遇到了这样一个问题:如果是二维数组,如何在模板中输出呢?经过查看开发手册,...

    Thinkphp无限级分类代码

    本篇就一点一点教大家写一个无限级分类出来,其实掌握一个知识,最主要的是要掌握无限级分类的逻辑,那么写起来就很容易的多了。 首先看数据库表:xp_cate ... &lt;?...class CateAction ...foreach($list as $key=&gt;$va

    DSmall TP框架多商户B2B2C商城系统开源商城V2.5.2

    2.volist 循环方法 统一为 foreach 3.数据库字段 pdr_payment_name去除 支付名称通过 get_order_payment_name 方法获取 4.Payment第三方支付优化 5.定时任务相关优化 6.解决ueditor插入代码相关BUG 7.优化第三方图片...

    DSmall TP框架多商户B2B2C开源商城系统V2.5.5

    2.volist 循环方法 统一为 foreach 3.数据库字段 pdr_payment_name去除 支付名称通过 get_order_payment_name 方法获取 4.Payment第三方支付优化 5.定时任务相关优化 6.解决ueditor插入代码相关BUG 7.优化第三方图片...

Global site tag (gtag.js) - Google Analytics