我明白每一个新行都会导致删除以前的行吗?
它背后的想法是什么?我不相信它是..
那么,我错了什么?
我有一个表单,可以在Stores
表中添加商店。商店有一个名为owner_id
的列,它通过belongsTo关系与Users
表相关联。
还有一个名为stores_users
的表,它应该使用HABTM关系存储每个商店的经理。
对于此表,有一个带有电子邮件字段的表单,通过将记录直接保存到stores_users
表,将用户连接到商店。
因此,如果我理解正确的话,那么在任何地方都没有完整的HABTM保存。
所以,我的问题是:
$this->User->find(...)
使用存储的数据来获取用户可以管理的所有商店?答案 0 :(得分:1)
是的,这就是cakephp中HABTM的默认行为 虽然这不是“每一行”,而是“每一个HABTM保存”。
如果您始终提供所有HABTM值,则此功能正常。 根据这种HABTM的规格烘焙视图,这一切都是开箱即用的。
如果更改默认行为(旧版本未删除),则需要确保没有重复项。我认为,有些行为试图实现这一目标。 但我建议您按照蛋糕的默认行为可以完成其工作的方式构建表单。
示例:
IS:1,3,6(在此密钥的DB中)
新:2,3,6(来自表格)
(蛋糕删除1,3,6并添加2,3,6)
=>总体结果(忘记不同的主键):删除“1”,添加“2”
所以它可能不是最节省资源的方式,但它确定最简单,最快。