tp5中删除栏目表数据,文章表数据和评论表数据对应删除

我在做个人博客当中遇到了一个经常遇到的问题,就是删除栏目表数据,文章表数据和评论表数据对应删除,以下是自己解决方法。

先说下思路:
1.开始先找出删除对应的删除栏目数据

// 获取删除id
        $id = input('get.id');
        // 栏目数据
        $cateInfo = model('Cate')->where('id',$id)->find();

2.找出栏目对应的文章数据

 // 文章数据
        $articleInfo = model('Article')->where('cate_id',$id)->select();

3 通过遍历文章数据,找出与栏目数据相等,执行删除语句

foreach ($articleInfo as $key => $value) {
            if ($cateInfo->id == $value->cate_id) {
                // 栏目与文章拥有共同数据,执行删除文章
                $artRes = $value->delete();
                if (!$artRes) {
                    return '删除文章失败';
                }
            }
        }

4.找出文章表对应的评论数据,并且遍历评论数据,找出与文章相同的数据,执行删除,过程与上面相似。

// 评论数据
                $comInfo = model('Comment')->where('article_id',$value->id)->select();
                // 遍历评论数据,如果评论在删除文章中,一起删除
                foreach ($comInfo as $key => $c) {
                    // $c 是评论数据
                    if ($c->article_id == $value->id) {
                        // 执行删除评论
                        $comRes = $c->delete();
                        if (!$comRes) {
                            return '删除评论失败';
                        }
                    }
                }

5.执行删除栏目

/ 删除栏目
        $cateDel = $cateInfo->delete();
        if ($cateDel) {
            return $this->success('删除栏目成功','admin/Cate/cateList');
        }
        else {
            return $this->error($cateDel);
        }

全部代码:

// 获取删除id
        $id = input('get.id');
        // 栏目数据
        $cateInfo = model('Cate')->where('id',$id)->find();
        // 文章数据
        $articleInfo = model('Article')->where('cate_id',$id)->select();
        // 遍历文章,如果文章有与删除栏目数据,执行删除
        foreach ($articleInfo as $key => $value) {
            if ($cateInfo->id == $value->cate_id) {
                // 栏目与文章拥有共同数据,执行删除文章
                $artRes = $value->delete();
                if (!$artRes) {
                    return '删除文章失败';
                }
                // 评论数据
                $comInfo = model('Comment')->where('article_id',$value->id)->select();
                // 遍历评论数据,如果评论在删除文章中,一起删除
                foreach ($comInfo as $key => $c) {
                    // $c 是评论数据
                    if ($c->article_id == $value->id) {
                        // 执行删除评论
                        $comRes = $c->delete();
                        if (!$comRes) {
                            return '删除评论失败';
                        }
                    }
                }
            }

        }

总结一下:代码步骤不难,就是过于冗杂,可以自己找出更简洁的方法!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值