ThinkPhp5 中Volist标签的用法

时间:2022-02-17 19:30:32

Volist标签一般是和内置方法assign()搭配使用,将值从后台传到前台,是当下比较流行的一种传值方法

本文实例讲述了ThinkPHP模板循环输出Volist标签用法。分享给大家供大家参考,具体如下

在controller中,assign()方法是在Controller给View传值的函数:

    public function index()
{
//查找结果集
$data['news'] = Db::query('select * from news order by news_time desc limit 7 ');
//把结果集的索引换成自定义索引(id)
$data['news'] = $this->update_index1($data['news'],'id');
//传值到模板
$this->assign('data',$data);
//模板调用
return $this->fetch();
}

这时,值被传递到了模板,可以用Volost()标签调用:

                {volist name='data.news' id='vo'}
<div class="content">
<div class="tu"><img src="{$vo.news_pic}"></div>
<div class="title"><span>{$vo.news_title}</span></div>
<div class="neirong"><p>{:strlen($data['news'][$vo.id]['news_body'])<?$data['news'][$vo.id]['news_body']:substr($data['news'][$vo.id]['news_body'],0,200)}</p></div>
<div class="contentinfo"><span>{$vo.news_time}</span><span>xx条评论</span><span>xxx次阅读</span><span>{$vo.news_autuor}</span>
<a href=? class="quanwen">>>阅读全文</a></div>
</div>
{/volist}
 {volist name='data.news' id='vo'}详解:
    name(必须):要输出的数据模板变量,name='data.news'需要与操作中的模板赋值指定对应$data['news']
    id(必须):循环变量,可以任意指定
  
{}标签中默认只能输出vo数组中的元素的值,{vo.xx},在php中代表$data['news']['xx'],
{:}里面可以包含方法,方便用三元运算符判断值,例如{:isset($data['news'][$vo.id]['title'])?$data['news'][$vo.id]['title']:''} 另外:volist标签中还有这些属性,了解即可

    offset(可选):要输出数据的offset

    length(可选):输出数据的长度

    key(可选):循环的key变量,默认值为i

    mod(可选):对key值取模,默认为2

    empty(可选):如果数据为空显示的字符串