ThinkPHP中foreach和volist的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP中foreach和volist的区别相关的知识,希望对你有一定的参考价值。
参考技术A 1、foreach标签类似与volist标签,只是更加简单,没有太多额外的属性,例如:$vo.id:$vo.name
name表示数据源
item表示循环变量。
代码示例:
<foreach name="list" item="vo" >
$key|$vo.id:$vo.name
</foreach>
2、volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。在控制器中首先对模版赋值。
代码示例:
$User = M('User');
$list = $User->limit(10)->select();
$this->assign('list',$list);
模板代码:
<volist name="list" id="vo">
$vo.id:$vo.name<br/>
</volist>
支持输出查询结果中的部分数据,例如输出其中的第5~15条记录:
<volist name="list" id="vo" offset="5" length='10'>
$vo.name
</volist>
输出偶数记录:
<volist name="list" id="vo" mod="2" >
<eq name="mod" value="1">$vo.name</eq>
</volist>
3、volist还有其他一些功能,建议去查看thinkphp手册,里面很详细。
thinkphp5 - volist套层循环查询
// 查询fenlei表所有数据 $zbc = db(\'fenlei\')->select(); // 根据fenlei查询xiangmu表所有数据 foreach($zbc as&$v){ // 根据本表id查询xiangmu表中对应aid的所有数据 $v[\'zxc\'] = db(\'xiangmu\')->where([\'aid\'=>$v[\'id\']])->select(); } $this->assign(\'zbc\',$zbc);
此方法根据fenlei表中的id来查询xiangmu表中aid与fenlei表中id相同的数据!
<ul> <!-- 显示所有项目名称 --> {volist name="zbc" id="vs"} <li> <a href="javascript:;">{$vs.name}</a> <ul> {volist name="vs.zxc" id="vd"} <li><a href="javascript:;">{$vd.name}</a></li> {/volist} </ul> </li> {/volist} </ul>
{volist}套层关系:内层name沿用外层id作为开头,写成"vs.zxc"
结果如图所示:
以上是关于ThinkPHP中foreach和volist的区别的主要内容,如果未能解决你的问题,请参考以下文章