cakePHP HABTM,我搞错了吗?

时间:2011-11-09 15:40:47

标签: cakephp has-and-belongs-to-many

我明白每一个新行都会导致删除以前的行吗?

它背后的想法是什么?我不相信它是..
那么,我错了什么?


编辑A

我有一个表单,可以在Stores表中添加商店。商店有一个名为owner_id的列,它通过belongsTo关系与Users表相关联。

还有一个名为stores_users的表,它应该使用HABTM关系存储每个商店的经理。

对于此表,有一个带有电子邮件字段的表单,通过将记录直接保存到stores_users表,将用户连接到商店。
因此,如果我理解正确的话,那么在任何地方都没有完整的HABTM保存。

所以,我的问题是:

  1. 我是否应该以这种方式使用它?
  2. 如果我的方法不正确,你能告诉我怎么做吗?
  3. 如何使用$this->User->find(...)使用存储的数据来获取用户可以管理的所有商店?

1 个答案:

答案 0 :(得分:1)

是的,这就是cakephp中HABTM的默认行为 虽然这不是“每一行”,而是“每一个HABTM保存”。

如果您始终提供所有HABTM值,则此功能正常。 根据这种HABTM的规格烘焙视图,这一切都是开箱即用的。

如果更改默认行为(旧版本未删除),则需要确保没有重复项。我认为,有些行为试图实现这一目标。 但我建议您按照蛋糕的默认行为可以完成其工作的方式构建表单。

示例:

IS:1,3,6(在此密钥的DB中)

新:2,3,6(来自表格)

(蛋糕删除1,3,6并添加2,3,6)

=>总体结果(忘记不同的主键):删除“1”,添加“2”

所以它可能不是最节省资源的方式,但它确定最简单,最快。