首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CakePHP 2中使用带有HABTM关系的“软删除”

在CakePHP 2中使用带有HABTM关系的“软删除”
EN

Stack Overflow用户
提问于 2012-05-29 12:11:36
回答 1查看 1.3K关注 0票数 2

使用CakePHP 2.x中的HABTM表,使用“软删除”技术(即在联接表中“删除”布尔字段)的最佳方法是,在删除关联时,“已删除”字段只更新为"1“,而不是被删除的行?

一个例子是一个电影数据库,它可以是一个或多个类型的一部分。所有表都有一个“删除”字段,这样就不会从数据库中删除任何数据,只有“已删除”字段被酌情更新为1或0:

电影

  • id
  • 名字
  • 已删除

体裁

  • id
  • 名字
  • 已删除

GenreMovie

  • genre_id
  • movie_id
  • 已删除

添加或编辑电影时,用户可以选择一个或多个类型与电影相关联。如果从电影中删除以前相关的类型,“删除”将设置为"1“。如果同一类型的电影被重新关联,它将被更新回"0“。

我们已经尝试过CakeDC的Utils插件- https://github.com/CakeDC/utils的SoftDelete行为,它对电影和类型都很有用,但对我们来说似乎不适用于join表GenreMovie,它继续完全删除行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-29 18:50:54

你可以在你的人际关系中建立一个deleteQuery

此外,要防止删除联接表中的记录,请查看以下内容:

唯一:布尔值或字符串keepExisting。 如果为真(默认值),蛋糕将首先删除外键表中现有的关系记录,然后再插入新的关系记录。更新时需要再次传递现有关联。如果为false,蛋糕将插入关系记录,并且在保存操作期间不会删除任何连接记录。当设置为keepExisting时,行为类似于true,但现有关联不会被删除。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10798901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档