我遇到这种情况,出于外部原因,我必须直接保存连接记录,而不是将它们保存为连接的一部分。这就是我的意思:
Firm
模型,其数据来自外部来源。County
模型counties_firms
联接表,用于将这些外部公司与各县联系起来。由于生活在哪里,我不是在编辑Firm
模型,也不是在编辑County
模型。我真的只是编辑协会。我有一个Firm
模型来封装我需要对Firm数据做的任何事情,其中一个方法是Firm::saveCounties( $data )
。它:
我发现只保存了最后一个县记录。这是传入的数据:
Array
(
[0] => Array
(
[firm_id] => 13
[county_id] => 4fa16e24-a25c-4523-8a9e-7d1d147402e8
)
[1] => Array
(
[firm_id] => 13
[county_id] => 4fa16e27-ccd0-4f22-97da-7d1d147402e8
)
[2] => Array
(
[firm_id] => 13
[county_id] => 4fa16e4a-68f8-4fb1-95bb-7d1d147402e8
)
)
鉴于这些数据,我正在Firm
和CountiesFirm
之间创建一个动态关联,并尝试$this->CountiesFirm->saveAll( $data )
。
正如我所提到的,本例中只有3个县协会中的最后一个被保存。知道我可能会缺少什么吗?
感谢。
答案 0 :(得分:2)
你的阵列很好。似乎模型没有清除其ID,您可以尝试添加['id'] => null到数组中的每个记录以强制清除模型ID。
这对我有用。
答案 1 :(得分:0)
我相信你在数组中缺少一个级别......它应该看起来像这样......
Array(
'CountiesFirm' => array(
[0] => Array
(
[firm_id] => 13
[county_id] => 4fa16e24-a25c-4523-8a9e-7d1d147402e8
)
[1] => Array
(
[firm_id] => 13
[county_id] => 4fa16e27-ccd0-4f22-97da-7d1d147402e8
)
[2] => Array
(
[firm_id] => 13
[county_id] => 4fa16e4a-68f8-4fb1-95bb-7d1d147402e8
)
)
)
尝试并让我知道你的结果