php教程

超轻量级php框架startmvc

thinkPHP框架实现的无限回复评论功能示例

更新时间:2020-03-28 10:53:37 作者:startmvc
本文实例讲述了thinkPHP框架实现的无限回复评论功能。分享给大家供大家参考,具体如下:

本文实例讲述了thinkPHP框架实现的无限回复评论功能。分享给大家供大家参考,具体如下:

如果只是简单的单回复的评论的话,那样操作是很简单的。但问题就是如何实现无限的回复评论呢!那么如果只是单回复的话,需要建好多的数据表,是根本不可能实现的。那么用TP框架实现无限回复评论(GitHub源代码下载地址:https://github.com/Jonybin/responsemessage)下载完成后,注意数据库的使用。

control控制器部分:


function CommentList($pid = 0, &$commentList = array(), $spac = 0) {
 static $i = 0;
 $spac = $spac + 1; //初始为1级评论
 $List = M('comment')->
 field('id,add_time,author,content,pid')->
 where(array('pid' => $pid))->order("id DESC")->select();
 foreach ($List as $k => $v) {
 $commentList[$i]['level'] = $spac; //评论层级
 $commentList[$i]['author'] = $v['author'];
 $commentList[$i]['id'] = $v['id'];
 $commentList[$i]['pid'] = $v['pid']; //此条评论的父id
 $commentList[$i]['content'] = $v['content'];
 $commentList[$i]['time'] = $v['add_time'];
 // $commentList[$i]['pauthor']=$pautor;
 $i++;
 $this->CommentList($v['id'], $commentList, $spac);
 }
 return $commentList;
}

view视图部分:


<volist name="commentList" id="vo">
 <eq name="vo.pid" value="0"><hr class="solidline"/><else/><hr class="dottedline"/></eq>
 <div class="commentList " style="padding-left:{$vo['level']-1}cm">
 <div><span class="user">
 <if condition="($vo.pauthor eq NULL)">{$vo.author}
 <else /> {$vo.author}<span class="black" style="color: #000101">回复</span>{$vo.pauthor}
 </if>
 </span><a class="hf" id="{$vo.id}" style="float: right">回复</a><span class="hftime">{$vo.time|date="Y-m-d",###}</span></div>
 <div class="content">{$vo.content|reFace}</div>
 </div>
</volist>

完整实例代码可点击此处本站下载

thinkPHP框架 无限回复评论