gpt4 book ai didi

cakephp - 为什么 saveAll() 只保存最后一条记录?

转载 作者:行者123 更新时间:2023-12-02 20:26:54 26 4
gpt4 key购买 nike

我遇到的情况是,由于外部原因,我必须直接保存连接记录,而不是将它们保存为连接的一部分。这就是我的意思:

  • 我有一个 Firm 模型,其数据是从外部源提取的。
  • 我的应用数据库中有一个 County 模型
  • 我有一个 counties_firms 连接表,用于将这些外部公司与县关联起来。

由于情况不同,我不会编辑 Firm 模型,也不会编辑 County 模型。我实际上只是在编辑关联。我有一个 Firm 模型来封装我需要对 Firm 数据执行的任何操作,其中一个方法是 Firm::saveCounties( $data )。它:

  • 接受传入数据,其中包括应关联的公司 ID 和县 ID。
  • 删除该县的所有现有加入记录
  • 尝试保存所有新的连接记录。

我发现只保存了最后一个县记录。这是传入的数据:

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
)

)

鉴于该数据,我正在 FirmCountiesFirm 之间创建动态关联,并尝试 $this->CountiesFirm->saveAll ($data).

正如我所提到的,此示例中的 3 个县协会中只有最后一个得到了保存。知道我可能会错过什么吗?

谢谢。

最佳答案

你的数组没问题。看来模型没有清除其 id,您可以尝试将 ['id'] => null 添加到数组中的每个记录以强制清除模型 id。

这对我有用。

关于cakephp - 为什么 saveAll() 只保存最后一条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10755847/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com