Thinkphp的volist标签嵌套循环使用教程,thinkphpvolist
本文较为详细的对ThinkPHP的volist标签嵌套的用法阐述如下:
首先,在Thinkphp开发手册中,有关于
标签嵌套:
模板引擎支持标签的多层嵌套功能,可以对标签库的标签指定可以嵌套。
系统内置的标签中,volist(及其别名iterate)、switch、if、elseif、else、foreach、compare(包括所有的比较标签)、(not)present、(not)empty、(not)defined等标签都可以嵌套使用。例如:
<volist name="list" id="vo"> <volist name="vo['sub']" id="sub"> {$sub.name} </volist> </volist>
上面的标签可以用于输出双重循环。
默认的嵌套层次是3级,所以嵌套层次不能超过3层,如果需要更多的层次可以指定TAG_NESTED_LEVEL配置参数。
但是在Action中具体应该怎样赋值“list”呢?从说明中可以看出,list应该是一个二维数组,下边是一段测试代码,经测试可以使用。
$Baojia=new Model('baojia'); $Class=new Model('class'); $parent=$Class->select(); foreach($parent as $n=> $val){ $parent[$n]['voo']=$Baojia->where('belongto=\''.$val['name'].'\'')->select(); } $this->assign('list',$parent); <volist name="list" id="vo"> {$vo.name}<BR> <volist name="vo['voo']" id="sub"> {$sub.name} </volist><BR> </volist>
数据库中定义了两个表,一个是报价表,一个是分类表,实现的功能是像树形菜单一样,显示分类,每个分类下边是各个型号的报价。
代码主要功能是:
1.首先创建模型:
$Baojia=new Model('baojia'); $Class=new Model('class');
2.然后查询分类中的数据,这一步非常重要,因为我们知道,数据库查询返回的是类似表格的二维形式的数据,当我们取出单条数据时,相当与读取每行数据。当调用
$parent=$Class->select();
将报价中的数据存入$parent中,其中$n是$parent数组的序号,也就相当于存入$parent中的数据表,每行添加一个索引,这个索引指向属于这个分类的报价。
foreach($parent as $n=> $val){ $parent[$n]['voo']=$Baojia->where('belongto=\''.$val['name'].'\'')->select(); }
3.最后:
$this->assign('list',$parent);
显示输出!
通过这个程序,可以更深入的理解
通过这样的分析,条理已经很清晰了,举一反三就可以实现N重循环,当然如果需要更多的层次可以指定TAG_NESTED_LEVEL配置参数。
这样的话,就可以实现例如:国家->省->市->县->乡镇等多重循环
改成 $c['childid'] 可以吗?
$this->assign('list1',$array);

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SublimeText3 English version
Recommended: Win version, supports code prompts!

WebStorm Mac version
Useful JavaScript development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

SublimeText3 Linux new version
SublimeText3 Linux latest version