我正在使用一个非常内在的数据库和CakePHP应用程序,到目前为止我的多模型视图和控制器工作正常。我有一个单独的表(Entity
),它在其他几个表上有id
作为外键entity_id
有些表是一对一关系(如Company
只有一个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
......
但是现在我创建了一个n到n关系的EntityCategory
,并在模型中创建了完整的HABTM
关系。
当我save()
但它只是HABTM
关系时它会起作用,并且当我使用saveAll()
时(除了HABTM
关系之外)它会保存everthing。
我错过了什么吗?我如何正确地工作?我今天使用以下代码:
if (!empty($this->data)) {
$this->Entity->saveAll($this->data);
$this->Entity->save($this->data);
}
saveAll()
将所有数据保存在多个表中,将ID保存在Entity->id
中,save()
保存HABTM
关系,但我不确定它是否正确或者,如果我改变一些结构/模型,它会给我带来麻烦。
这是使用它的最佳方式吗?是否有正确的方法来保存CakePHP中的关系?您的经验/知识可以告诉我什么?