我正在使用带有 CakePHP 应用程序的非常内在的数据库,到目前为止,我的多模型视图和控制器工作正常。我有一个单数表(Entity
),它id
在其他几个表上作为外键entity_id
有些表是一对一的关系(比如 aCompany
是一个Entity
),有些表是一对多的(Entity
可以有几个Addresses
)等等。
我不会/不能更改数据库模型,所以这就是结构。
我一直在使用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 ...
而我的拯救就是做所有艰苦的工作BEGIN TRANSACTION
,所有INSERT
的和最后的COMMIT
......
但是现在我创建了EntityCategory
一个对 n 的关系,并在HABTM
模型内创建了完整的关系。
当我使用它时它起作用save()
,但只是HABTM
关系,当我使用时它会保存一切saveAll()
(就像以前一样),除了HABTM
关系。
我错过了什么吗?我如何使它正常工作?我今天使用以下代码:
if (!empty($this->data)) {
$this->Entity->saveAll($this->data);
$this->Entity->save($this->data);
}
将saveAll()
所有数据保存在几个表中,保存 idEntity->id
并save()
保存HABTM
关系,但我不确定它是否正确,或者如果我更改某些结构/模型是否会给我带来问题。
这是最好的使用方法吗?有没有一种正确的方法可以在 CakePHP 中保存这种关系?您的经验/知识可以告诉我什么?