TP5.0框架實(shí)現(xiàn)無限極回復(fù)功能的方法分析
本文實(shí)例講述了TP5.0框架實(shí)現(xiàn)無限極回復(fù)功能的方法。分享給大家供大家參考,具體如下:
最近做項(xiàng)目的時(shí)候用到了評(píng)論回復(fù),使用ThinkPHP5.0框架做回復(fù)碰到了一些問題,簡單總結(jié)一下。(李昌輝)
1.首先是數(shù)據(jù)表的設(shè)計(jì):
create table zy_huifu ( code int auto_increment primary key, #回復(fù)代號(hào) puser varchar(50), #回復(fù)人員 listcode int, #文章代號(hào) time varchar(50), #回復(fù)時(shí)間 content text, #回復(fù)內(nèi)容 pcode int, #父級(jí)代號(hào) 0文章 leval int, #級(jí)別 0頂級(jí) 1其它 isok int #已讀未讀0未讀1已讀 );
評(píng)論和回復(fù)放在了一張表里面,為了在顯示的時(shí)候做區(qū)分,評(píng)論作為頂級(jí)回復(fù)級(jí)別代號(hào)為0,其它的子級(jí)回復(fù)級(jí)別代號(hào)為1。
每個(gè)回復(fù)都有一個(gè)父級(jí)代號(hào)代表回復(fù)的哪一條評(píng)論,如果是直接評(píng)論的文章,父級(jí)代號(hào)設(shè)置為0.
2.接下來是在頁面上顯示評(píng)論和回復(fù)信息:

在控制器里面,我們需要去查詢?cè)撐恼孪碌乃性u(píng)論及回復(fù)內(nèi)容,并且注冊(cè)到TP框架里面,這里調(diào)用了一個(gè)方法CommentList()來獲取該文章下的評(píng)論回復(fù):
//查詢?cè)u(píng)論
$ahuifu = $this->CommentList($code,0);
$this->assign("ahuifu",$ahuifu);
CommentList()方法如下,使用遞歸的方式將所有評(píng)論回復(fù)按照一定的順序查詢出來并且存儲(chǔ)到數(shù)組里面:
//讀取評(píng)論列表的遞歸,code為文章代號(hào),pcode為父級(jí)代號(hào)
public function CommentList($code,$pcode){
$commentlist = array(); //存儲(chǔ)評(píng)論數(shù)組
$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;
//查詢子回復(fù)
$zi = $this->CommentList($code,$v["code"]);
if(count($zi)){
foreach($zi as $v1){
$commentlist[] = $v1;
}
}
}
return $commentlist;
}
在view視圖頁面顯示數(shù)據(jù):
{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}">回復(fù)</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}">回復(fù)</button></span>
</div>
<div class="show_nr_pl_nr">
{$vp.content}
</div>
</div>
</div>
{/if}
{/volist}
3.添加回復(fù)及評(píng)論
添加評(píng)論的時(shí)候注意將父級(jí)代號(hào)pcode添加為0,將級(jí)別leval添加為0即可。
添加回復(fù)的時(shí)候?qū)⒏讣?jí)代號(hào)添加為要回復(fù)的這一條數(shù)據(jù)的主鍵,將級(jí)別leval添加為1即可。
具體實(shí)現(xiàn)比較簡單,不贅述。
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
- ThinkPHP無限級(jí)分類原理實(shí)現(xiàn)留言與回復(fù)功能實(shí)例
- thinkphp實(shí)現(xiàn)無限分類(使用遞歸)
- thinkPHP實(shí)現(xiàn)遞歸循環(huán)欄目并按照樹形結(jié)構(gòu)無限極輸出的方法
- ThinkPHP自動(dòng)填充實(shí)現(xiàn)無限級(jí)分類的方法
- 解析thinkphp的左右值無限分類
- 使用ThinkPHP的自動(dòng)完成實(shí)現(xiàn)無限級(jí)分類實(shí)例詳解
- Thinkphp無限級(jí)分類代碼
- thinkPHP框架實(shí)現(xiàn)的無限回復(fù)評(píng)論功能示例
- thinkphp5實(shí)現(xiàn)無限級(jí)分類
- PHP實(shí)現(xiàn)的無限分類類庫定義與用法示例【基于thinkPHP】
- thinkphp5使用無限極分類
相關(guān)文章
自定義Laravel (monolog)日志位置,并增加請(qǐng)求ID的實(shí)現(xiàn)
今天小編就為大家分享一篇自定義Laravel (monolog)日志位置,并增加請(qǐng)求ID的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10
php的memcache類分享(memcache隊(duì)列)
這篇文章主要介紹了php的memcache類的使用方法(memcache隊(duì)列),需要的朋友可以參考下2014-03-03
WordPress中is_singular()函數(shù)簡介
這篇文章主要介紹了WordPress中is_singular()函數(shù)簡介的相關(guān)資料,需要的朋友可以參考下2015-02-02
php 文件下載 出現(xiàn)下載文件內(nèi)容亂碼損壞的解決方法(推薦)
下面小編就為大家?guī)硪黄猵hp 文件下載 出現(xiàn)下載文件內(nèi)容亂碼損壞的解決方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11
php curl請(qǐng)求接口并獲取數(shù)據(jù)的示例代碼
本篇文章主要介紹了php curl請(qǐng)求接口并獲取數(shù)據(jù)的示例代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-08-08
PHP+MYSQL實(shí)現(xiàn)讀寫分離簡單實(shí)戰(zhàn)
本篇文章主要介紹了PHP+MYSQL實(shí)現(xiàn)讀寫分離,實(shí)例分析了讀寫分離的技巧,從而提高數(shù)據(jù)庫的負(fù)載能力,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-03-03
PHP中用mysqli面向?qū)ο蟠蜷_連接關(guān)閉mysql數(shù)據(jù)庫的方法
下面小編就為大家?guī)硪黄狿HP中用mysqli面向?qū)ο蟠蜷_連接關(guān)閉mysql數(shù)據(jù)庫的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11

