使用CakePHP 2.x中的HABTM表,使用“软删除”技术(即在联接表中“删除”布尔字段)的最佳方法是,在删除关联时,“已删除”字段只更新为"1“,而不是被删除的行?
一个例子是一个电影数据库,它可以是一个或多个类型的一部分。所有表都有一个“删除”字段,这样就不会从数据库中删除任何数据,只有“已删除”字段被酌情更新为1或0:
电影
体裁
GenreMovie
添加或编辑电影时,用户可以选择一个或多个类型与电影相关联。如果从电影中删除以前相关的类型,“删除”将设置为"1“。如果同一类型的电影被重新关联,它将被更新回"0“。
我们已经尝试过CakeDC的Utils插件- https://github.com/CakeDC/utils的SoftDelete行为,它对电影和类型都很有用,但对我们来说似乎不适用于join表GenreMovie,它继续完全删除行。
发布于 2012-05-29 18:50:54
你可以在你的人际关系中建立一个deleteQuery。
此外,要防止删除联接表中的记录,请查看以下内容:
唯一:布尔值或字符串keepExisting。 如果为真(默认值),蛋糕将首先删除外键表中现有的关系记录,然后再插入新的关系记录。更新时需要再次传递现有关联。如果为false,蛋糕将插入关系记录,并且在保存操作期间不会删除任何连接记录。当设置为keepExisting时,行为类似于true,但现有关联不会被删除。
https://stackoverflow.com/questions/10798901
复制相似问题