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