公益图书馆-学习笔记六 volist嵌套

volist嵌套使用



1、重要特性是如果volist的name对应一个数组,则它会把数组遍历一遍。
例如

<volist name="comments" id="vo">
XXX
</volist>

$comments[0]=$comment1;
$comments[1]=$comment2;
则上面代码会先把$comment1当成vo把代码XXX执行一遍;
然后再把$comment2当成vo再把XXX执行一遍。
所以画评论框时只要上面一段代码,它就会自动把所有评论框都画出来。

2、如果嵌套,如下方法来获取嵌套内容

$comments[0]=$comment1;
$comments[1]=$comment2;

$comment1["id"]=1;

$comment1["content"]="评论内容";

$comment1["replies"]=$replies;

$replies[0]=$reply1;

$replies[1]=$reply2;

$reply1["name"]="dd";

$reply2["name"]="mm";

获取reply1和reply2的name值的方法:

<volist name="comments" id="vo">

  <volist name="vo[‘replies‘]" id="sub">

    {sub.name}
  </volist>

</volist>

由于comments和replies均为数组,故会进行两次自动遍历。

先comments1,然后reply1输出dd;然后reply2输出mm;

然后comments2,由于此处comments2里面没有replies,故不输出。

时间: 2024-08-01 19:32:05

公益图书馆-学习笔记六 volist嵌套的相关文章

公益图书馆-学习笔记

1.HTML <caption> 标签 caption 标签必须紧随 table 标签之后.您只能对每个表格定义一个标题.通常这个标题会被居中于表格之上. <table border="6"> <caption>表格标题</caption> 2.模板继承是thinkphp的一项更加灵活的模板布局方式,模板继承不同于模板布局. 模板可以定义一个基础模板,并且定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基

公益图书馆-学习笔记二

1.在视图中显示控制器变量. 在控制其中为变量赋值即可,如 $this->info_user=$user;然后在视图中可直接使用. 2.html显示数组使用 volist标签 <volist name="info_user" id="vo"> {$vo.username} {$vo.email}即可使用数组里的键值对 3.隐藏button <button type="submit" style="display:

公益图书馆-学习笔记四

1.复选框及其使用方法: <select class="form-control statusSelect" name="select" onchange="javascript:location.href=this.value;"> //注意: onchange内的javascript函数 <option selected value="/user/index?status=yes">我被选中<

公益图书馆-学习笔记三

1.脚手架页面布局--bootstrap 我们的整个页面分成了16个span,即16部分.在添加一个block时,要在里面设置一个div,然后div里面设置该模块所占的span数和内边距: <block name="content"> <div class="span12 p20"> <form ...> </div> </block> 该代码表示content模块占据12个span,内边距为20. 2.T

公益图书馆-学习笔记五

使用jquery来设置html元素的显示与隐藏属性,同时调整div的高度 点击上面的“收起回复”超链接之后,执行下面几个动作: a.“收起回复”变成“回复(3)”: b.回复全部隐藏: c.重新自适应高度. 再次点击“回复(3)”后,执行下面几个动作: a.“回复(3)”变成“收起回复”: b.回复全部显示: c.重新自适应高度. 1.为了绑定jquery函数,先对html元素或div要设置 类class 2.实现“收起回复”和“回复(3)”之间的转换 对象:.replyTrigger 内容:使

java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessController的checkPerssiom方法,访问控制器AccessController的栈检查机制又遍历整个 PerssiomCollection来判断具体拥有什么权限一旦发现栈中一个权限不允许的时候抛出异常否则简单的返回,这个过程实际上比我的描述要复杂 得多,这里我只是简单的一句带过,因为这

Lua学习笔记(六):函数-续

Lua中的函数是带有词法定界(lexical scoping)的第一类值(first-class values).第一类值指:在Lua中函数和其他值(数值.字符串)一样,函数可以被存放在变量中,也可以存放在表中,可以作为函数的参数,还可以作为函数的返回值.词法定界指:嵌套的函数可以访问他外部函数中的变量.这一特性给Lua提供了强大的编程能力. Lua中关于函数稍微难以理解的是函数也可以没有名字,匿名的.当我们提到函数名(比如print),实际上是说一个指向函数的变量,像持有其他类型的变量一样:

python之raw_input()(学习笔记六)

python之raw_input()(学习笔记六) 我们经常使用raw_input()读取用户的输入,如下例子所示: >>> name = raw_input('please input your name:'),截图如下: 下面简单说下,raw_input()与if搭配使用,脚本如下: #!/usr/bin/env python # -*- coding:utf-8 -*- birth = raw_input('birth:') if birth < 2000: print '0

swift学习笔记(六)析构过程和使用闭包对属性进行默认值赋值

一.通过闭包和函数实现属性的默认值 当某个存储属性的默认值需要定制时,可以通过闭包或全局函数来为其提供定制的默认值. 注:全局函数结构体和枚举使用关键字static标注    函数则使用class关键字标注 当对一个属性使用闭包函数进行赋值时,每当此属性所述的类型被创建实例时,对应的闭包或函数会被调用,而他们的返回值会被作为属性的默认值. ESC: Class SomeCLass{ let someProperty:SomeType={ //给someProperty赋一个默认值 //返回一个与