ThinkPHP关联删除
2023-03-29 23:03:03
287
{{single.collect_count}}

ThinkPHP关联删除操作:
关联删除,即表示删除A表中某一条数据时,B表中的关联数据也会删除;
举个例子:
一个标题可以包含多篇文章,而一篇文章只能对应一个标题(即标题与文章的对应关系,是1对多的关系),用户需要查看文章的时候,肯定是根据标题栏目来查询到相应的文章,也就是说PHP语言相关的知识栏目,不会出现Go语言的内容,这就是关联的关系。由于使用ThinkPHP框架开发,所以在设计表结构的时候,不需要着重设计表的主键、外键关联等操作,而是直接通过框架绑定主键、外键即可完成关联删除操作。
下面我们介绍操作步骤:
我们需要有cate的控制器、模型、模板以及article控制器、模型、模板。当cate中的A记录删除之后,article中以A记录为标题的文章也将删除;
1.首先要在Cate模型中创建文章关联的方法,因为是一对多的关系,所以使用hasMany方法,如下:
在这里插入图片描述
2.在Article模型中创建栏目关联的方法,因为是多对1的关系,所以使用belongsTo方法,如下:
在这里插入图片描述
3.此时回到Cate控制器中的删除方法中,我们需要在进行删除操作之前将数据查询出来(此时不仅仅查询的是Cate表中的数据,应该同时包含Article表中的数据,通过with方法实现)然后进行删除操作。如下:
在这里插入图片描述

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}