CakePHP使用save()与saveAll()实现了andbelogstomany

CakePHP使用save()与saveAll()实现了andbelogstomany,cakephp,entity-relationship,has-and-belongs-to-many,Cakephp,Entity Relationship,Has And Belongs To Many,我正在使用一个带有CakePHP应用程序的内部数据库,到目前为止,我的多模型视图和控制器工作正常。我有一个单数表(Entity),它的id作为外键Entity\u id 有些表是一对一的关系(如公司是一个实体),有些表是一对多的关系(实体可以有多个地址)等等 我不会/无法更改数据库模型,因此这是结构 我一直在使用saveAll()将数据保存在输入名称如下的表上: Entity.type='x' (hidden inside the view) Company.name Address.0.str

我正在使用一个带有CakePHP应用程序的内部数据库,到目前为止,我的多模型视图和控制器工作正常。我有一个单数表(
Entity
),它的
id
作为外键
Entity\u id

有些表是一对一的关系(如
公司
是一个
实体
),有些表是一对多的关系(
实体
可以有多个
地址
)等等

我不会/无法更改数据库模型,因此这是结构

我一直在使用
saveAll()
将数据保存在输入名称如下的表上:

Entity.type='x' (hidden inside the view)
Company.name
Address.0.street
Address.0.city
Address.1.street
Address.1.city

... and so on ...
而我的全部保存工作就是完成所有繁重的工作,
开始事务
,所有的
插入
s和最后的
提交

但是现在我已经创建了一个
EntityCategory
,它是一个n对n关系,并且在模型内部创建了完整的
HABTM
关系

当我使用
save()
HABTM关系时,它可以工作;当我使用
saveAll()
时,它可以保存除
HABTM
关系之外的所有内容(与以前一样)

我错过什么了吗?我如何使它正确工作?我今天使用以下代码:

if (!empty($this->data)) {
  $this->Entity->saveAll($this->data);
  $this->Entity->save($this->data);
}
saveAll()
将所有数据保存在多个表中,将id保存在
Entity->id
中,
save()
保存
HABTM
关系,但我不确定它是否正确,或者如果我更改某些结构/模型,它是否会给我带来问题

这是最好的使用方法吗?有没有一种正确的方法可以在CakePHP中保存这种关系?您的经验/知识能告诉我什么?

saveAll()和HABTM关联的问题是一个已知的CakePHP问题,从1.2 RC2开始尚未解决

根据CakePHP,保存相关模型数据的最佳实践是:

使用关联模型时,必须认识到保存模型数据应始终由相应的CakePHP模型完成。如果要保存新帖子及其关联的注释,则在保存操作期间将同时使用帖子和注释模型

但是,使用saveAll()和save()应该可以工作,IMHO是一个更灵活/通用的解决方案。

saveAll()和HABTM关联的问题是一个已知的CakePHP,并且在1.2 RC2中尚未解决

根据CakePHP,保存相关模型数据的最佳实践是:

使用关联模型时,必须认识到保存模型数据应始终由相应的CakePHP模型完成。如果要保存新帖子及其关联的注释,则在保存操作期间将同时使用帖子和注释模型


但是,使用saveAll()和save()应该可以工作,IMHO是一个更灵活/通用的解决方案。

如果您下载了


不过要小心,可能会有其他东西坏掉。

如果您下载了,这是可以修复的

不过要小心,可能会有其他东西坏掉