TP5.0框架实现无限极回复功能的方法分析
发布:smiling 来源: PHP粉丝网 添加日期:2021-11-20 20:10:29 浏览: 评论:0
这篇文章主要介绍了TP5.0框架实现无限极回复功能的方法,结合实例形式分析了thinkPHP5.0框架下无限极回复功能相关的数据库、评论功能及界面布局实现方法,需要的朋友可以参考下。
本文实例讲述了TP5.0框架实现无限极回复功能的方法,分享给大家供大家参考,具体如下:
最近做项目的时候用到了评论回复,使用ThinkPHP5.0框架做回复碰到了一些问题,简单总结一下。(李昌辉)
1.首先是数据表的设计:
- create table zy_huifu
- (
- code int auto_increment primary key, #回复代号
- puser varchar(50), #回复人员
- listcode int, #文章代号
- time varchar(50), #回复时间
- content text, #回复内容
- pcode int, #父级代号 0文章
- leval int, #级别 0顶级 1其它
- isok int #已读未读0未读1已读
- );
评论和回复放在了一张表里面,为了在显示的时候做区分,评论作为顶级回复级别代号为0,其它的子级回复级别代号为1。
每个回复都有一个父级代号代表回复的哪一条评论,如果是直接评论的文章,父级代号设置为0.
2.接下来是在页面上显示评论和回复信息:
在控制器里面,我们需要去查询该文章下的所有评论及回复内容,并且注册到TP框架里面,这里调用了一个方法CommentList()来获取该文章下的评论回复:
- //查询评论
- $ahuifu = $this->CommentList($code,0);
- $this->assign("ahuifu",$ahuifu);
CommentList()方法如下,使用递归的方式将所有评论回复按照一定的顺序查询出来并且存储到数组里面:
- //读取评论列表的递归,code为文章代号,pcode为父级代号
- public function CommentList($code,$pcode){
- $commentlist = array(); //存储评论数组
- $list = Db::table("zy_huifu")
- ->alias('a')
- ->where("listcode",$code)
- ->where("pcode",$pcode)
- ->join("zy_user b","a.puser = b.uid")
- ->select();
- foreach($list as $v){
- $commentlist[] = $v;
- //查询子回复
- $zi = $this->CommentList($code,$v["code"]);
- if(count($zi)){
- foreach($zi as $v1){
- $commentlist[] = $v1;
- }
- }
- }
- return $commentlist;
- }
在view视图页面显示数据:
- {volist name="ahuifu" id="vp"}
- {if condition="($vp.leval == 0)"}
- <div class="panel panel-default pl_list">
- <div class="panel-body pl_list_nr">
- <div class="show_nr_pl_tou">
- <img src="{$vp.img}" width="30" height="30" />
- <span>{$vp.name}</span>
- <span>{$vp.time|date="Y-m-d H:i:s",###}</span>
- <span><button class="btn btn-primary btn-xs show_huifu_btn" pcode="{$vp.code}">回复</button></span>
- </div>
- <div class="show_nr_pl_nr">
- {$vp.content}
- </div>
- </div>
- </div>
- {else /}
- <div class="panel panel-default pl_list">
- <div class="panel-body pl_list_nr" style="margin-left:50px">
- <div class="show_nr_pl_tou">
- <img src="{$vp.img}" width="30" height="30" />
- <span>{$vp.name}</span>
- <span>{$vp.time|date="Y-m-d H:i:s",###}</span>
- <span><button class="btn btn-primary btn-xs show_huifu_btn" pcode="{$vp.code}">回复</button></span>
- </div>
- <div class="show_nr_pl_nr">
- {$vp.content}
- </div>
- </div>
- </div>
- {/if}
- {/volist}
3.添加回复及评论
添加评论的时候注意将父级代号pcode添加为0,将级别leval添加为0即可。
添加回复的时候将父级代号添加为要回复的这一条数据的主键,将级别leval添加为1即可。
具体实现比较简单,不赘述。
Tags: TP5 0无限极回复
相关文章
- ·tp5实现微信小程序多图片上传到服务器功能(2018-11-15)
- ·TP5实现表格拖动排序并保存到数据库的方法(附代码)(2020-02-05)
- ·TP5读取txt文件的代码示例(2020-02-08)
- ·TP5.1验证器在场景验证中传参的使用(2020-02-25)
- ·在tp5框架中该如何部署二级域名(2020-03-22)
- ·tp5实现登录并保存session,再由不同角色权限跳转页面(2020-03-28)
- ·TP5 基于bootstrap实现多图上传插件(2021-10-06)
- ·tp5(thinkPHP5)框架实现多数据库查询的方法(2021-11-03)
- ·tp5框架内使用tp3.2分页的方法分析(2021-11-20)
- ·tp5(thinkPHP5框架)captcha验证码配置及验证操作示例(2021-11-23)
- ·tp5(thinkPHP5框架)时间查询操作实例分析(2021-11-24)
- ·TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法(2021-11-24)
- ·tp5框架无刷新分页实现方法分析(2021-12-22)
- ·解决tp5在nginx下修改配置访问的问题(2022-01-05)
- ·tp5 sum某个字段相加得到总数的例子(2022-01-10)
- ·tp5递归 无限级分类详解(2022-01-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)