重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
php实现多次回复的方法:1、创建“function commentList($aid,$pid = 0,&$result=array()){...}”;2、通过“$this->commentList($aid);”方式调用即可。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、虚拟主机、营销软件、网站建设、吉首网站维护、网站推广。
本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。
php怎么实现多次回复?
PHP无限级评论回复功能实现
protected function commentList($aid,$pid = 0,&$result=array()){ $arr = ArticleComment::relation(['usertalent'=> function($query){ $query->field('id,talent_usernickname,talent_avatar'); }])->where(['pid' => $pid])->where(['article_id' => $aid])->order('id desc')->select(); if(empty($arr)){ return array(); } foreach ($arr as $cm) { $thisArr=&$result[]; $cm["children"] = $this->commentList($aid,$cm["id"],$thisArr); $thisArr = $cm; } return $result;}调用方法
$this->commentList($aid);项目中使用tp5写文章评论回复功能
表中使用pid来标识回复表的id 表结构如下
CREATE TABLE `bcpub_article_comment` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT,`author_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '作者ID',`article_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '文章ID',`pid` int(11) unsigned NOT NULL DEFAULT '0',`uid` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '评论人ID',`comment` varchar(250) NOT NULL DEFAULT '',`give_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '评论点赞数量',`add_time` int(10) unsigned NOT NULL DEFAULT '0',PRIMARY KEY (`id`),KEY `author_id` (`author_id`),KEY `pid` (`pid`)) ENGINE=MyISAM AUTO_INCREMENT=97 DEFAULT CHARSET=utf8 COMMENT='文章评论表'推荐学习:《PHP视频教程》