Php 如何在主表中进行软删除时关闭轴删除?

Php 如何在主表中进行软删除时关闭轴删除?,php,many-to-many,laravel,eloquent,soft-delete,Php,Many To Many,Laravel,Eloquent,Soft Delete,我有一个Users和一个Groups表格,在Laravel雄辩的ORM中。一个组中可以有多个用户,一个用户可以在多个组中,因此我使用透视表来实现多对多关系。实际上,这种关系不是多对多的,因为每个用户只能在一个组中,但系统就是这样设计的。我软删除Users表中的行,以便在需要时可以稍后恢复用户 问题是,当我删除一个用户时,系统也会自动删除透视表中的条目。这始终是一个条目。我没有将其设置为这样,只是添加了protected$softDelete=true行到用户模型,所以我不明白为什么系统会自动删除

我有一个
Users
和一个
Groups
表格,在Laravel雄辩的ORM中。一个组中可以有多个用户,一个用户可以在多个组中,因此我使用透视表来实现多对多关系。实际上,这种关系不是多对多的,因为每个用户只能在一个组中,但系统就是这样设计的。我软删除
Users
表中的行,以便在需要时可以稍后恢复用户

问题是,当我删除一个用户时,系统也会自动删除透视表中的条目。这始终是一个条目。我没有将其设置为这样,只是添加了
protected$softDelete=true行到
用户
模型,所以我不明白为什么系统会自动删除透视条目

我不想软删除pivot条目,我只想软删除用户和独占用户,系统不应触摸任何其他内容。
我可以创建自己的delete函数,将
deleted\u at
变量设置为实际时间,但是如果需要,我不能简单地通过将
true
更改为
false
来实现软删除


为什么系统会自动删除透视条目,我如何才能关闭此行为?

检查您的数据库如果您使用外键,您可以将其设置为更新时、删除时“级联”。您需要将其设置为“无操作”


另一个答案是建议在多对多关系中添加一个约束以进行过滤,这并不完全是您所期望的,也不确定它是否有效。我的意思是过滤被破坏的关系。根据我的经验,当软删除一行时,它不会删除透视条目,你能给我们一个模型和代码的例子吗?
CONSTRAINT `fk_USER_Address_1` FOREIGN KEY (`userId`) REFERENCES `USER` (`userId`) ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT `fk_USER_Address_1` FOREIGN KEY (`userId`) REFERENCES `USER` (`userId`) ON UPDATE CASCADE ON DELETE NO ACTION,