ThinkPHP5开发连载六十九之模板-内置标签之循环标签

上一篇文章讲解“模型-输出替换”,本篇文章讲解“模板-内置标签之循环标签”。

循环标签

1. foreach标签

foreach标签的用法和PHP语法非常接近,用于循环输出数组或者对象的属性,用法如下:

1)基本使用——数据源通过模板变量赋值

新建Index控制器,并新建index方法,在方法中获取数据并赋值到模板中

在index.html模板中用foreach循环输出数据

预览:

2)使用函数或者方法获取数据源

使用方法获取数据源

在index.html模板中使用函数或方法获取数据源,为了区分,换一个表查询,但注意此表要创建模型

预览:

使用函数获取数据源

在公共函数文件common.php文件中,新建getData函数,返回数据。

在index.html模板中使用函数获取数据源,并循环输出:

预览:

2. volist标签

volist标签通常用于查询数据集或者二维数组的结果输出。

1)基本使用

在Index控制器中,新建voshow方法,在方法中对模板进行赋值

在index.html模板中进行volist循环展示

预览:

2)函数设定数据集

可以直接使用函数设定数据集,而不需要在控制器中给模板变量赋值传入数据集变量,如:

在index.html模板中使用函数设定数据集:

访问Index控制器的voshow方法,预览:

3)输出部分数据——属性offset和length

支持输出查询结果中的部分数据,例如输出其中的第5~15条记录。

在index.html模板中使用属性offset与length输出部分数据

数据库中数据的ID不是连续的。预览:

注意:

1. offset为偏移量,从第几条数据开始;length输出的数据条数,两者功能类似于SQL语句中的limit。

4)输出偶数记录——属性mod

在index.html中,输出偶数记录:

预览:

mod属性还用于控制一定记录的换行,例如:

在index.html模板中使用mod属性控制换行。

预览:

注意:

1. mod属性为取模,即取余数,在volist中mod是行数(下标)除以mod取余数,行数从0开始。

5)数据源为空输出提示——empty

在Index控制器中新建emshow方法,为index.html模板分配空数据

在index.html模板中,使用empty属性,输出为空提示

预览:

empty属性还支持变量输出:

在Index控制器的emshow方法中赋值给模板变量

在index.html模板中输出

预览:

6)输出循环变量——key

在index.html模板中输出循环变量:

访问voshow方法,预览:

注意:

1. 如果没有指定key属性的话,默认使用循环变量i。

2. 循环变量值从1开始。

如果要输出数组的索引,可以直接使用key变量,和循环变量不同的是,这个key是由数据本身决定,而不是循环控制的。

在index.html模板中,输出数组索引key:

预览:

3. for标签

在Index控制器中,新建forshow方法:

在index.html模板中循环

解析后的代码为:

预览:

测试for循环的其他属性

预览:

ThinkPHP5连载为卓象程序员原创,转载请联系卓象程序员

关注卓象程序员,定期发布技术文章

下一篇讲解“模板-内置标签之比较标签”

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180928A16AV800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券