关联模型如何删除?

新增关联模型中描述两个关联模型之间如何添加能自动添加关系,也就是维护中间表或者外键

那么请问如果是删除怎么处理?包括一对多删除一时多对多删除时删除中间表这两种情况怎么解决?
已邀请:

zhuzhichao

赞同来自:

一对多:删除其中一个

>模型:Node 板块, Topic 帖子

Node::find($id)->topic()->where(添加筛选条件)->first()->delete();

(由于delete只能删除model,所以需要first)

---

多对多:删除枢纽表

>模型:Group 组别, Permission 权限

只有一个方法detach,而方法的参数是传枢纽表的主键id。

首先获取枢纽表的对应数据的id

要获得 group_permissions 表数据的id
$pivotId = Group::find($groupId)->permission()->wherePivot(添加筛选条件)->getRelatedIds();
或者
$pivotId = GroupPermission::筛选条件->各种方法获取id
总之是要获取枢纽表的对应数据的id(不论是array或者int)

最后就是删除了

Group::find($groupId)->permission()->detach($pivotId)

要回复问题请先登录注册