Cakephp HABTM向团队中添加几个玩家只插入第一个,并更新该条目

Cakephp HABTM向团队中添加几个玩家只插入第一个,并更新该条目,cakephp,cakephp-2.0,has-and-belongs-to-many,Cakephp,Cakephp 2.0,Has And Belongs To Many,我在为一个团队添加多个球员时遇到问题。当我尝试插入多个玩家时,它只会更新属于团队的第一个插入条目 但让我们从头开始: 当我在db中直接添加了几个玩家的团队中调用find时,我得到以下结果: Array ( [Team] => Array ( [id] => 3 ... ) [Player] => Array ( [0] => Array

我在为一个团队添加多个球员时遇到问题。当我尝试插入多个玩家时,它只会更新属于团队的第一个插入条目

但让我们从头开始: 当我在db中直接添加了几个玩家的团队中调用find时,我得到以下结果:

Array
(
    [Team] => Array
        (
            [id] => 3
            ...
        )

    [Player] => Array
      (
        [0] => Array
           (
              [id] => 15
              ....
           )
        [0] => Array
          (
              [id] => 21
              ....
          )
        [0] => Array
          (
            [id] => 23
            ....
          )
          ....
    )
)
所以我想我可以把它以那种格式保存到数据库中。但是就像我在插入第一个条目然后用另一个id更新之前所说的,我不知道为什么。难道不应该像往常一样,保存相同的数据结构,就像从查找中取出一样吗

以下是我在团队模型中的HABTM关系:

public $hasAndBelongsToMany = array(
    'EmployeesSecondary' => array(
        'className' => 'Player',
        'joinTable' => 'employees_teams',
        'foreign_key' => 'team_id',
        'associationForeignKey' => 'bv',
        'unique' => 'keepExisting' 
    ) 
);
我已经尝试过仅在saveAll调用时使用saveAll,改变了独特的行为。我甚至在habtm表中插入了一些测试数据,并尝试将从find'all'中获得的数据直接保存到数据库中,但它只在插入第一个条目后更新每个条目


如果您有任何想法,我们将不胜感激。

您应该共享您正试图保存的精确阵列,这样可以更轻松地解决问题。精确阵列会告诉您什么,而此阵列不会告诉您什么?事实是,第一个habtm条目已保存,并使用以下数据进行更新。因为它们都有相同的列,所以不会有任何区别。我更改了id,但在复制+粘贴后忘记了这样做。共享一个精确的数组与关注细节以及什么是正确的,什么是不正确的有关。因为我和其他任何人都不能阅读您的代码,所以我希望尽可能详细地帮助您解决问题。您纠正了我看到的数据中第二大缺陷,即相同的id。IMO:另一个缺陷是您的播放器数组具有相同的密钥,即0反复出现。我猜你的数组格式不正确。但我不知道这是否是一个糟糕的复制粘贴作业,或者您是否正在尝试保存精确的数组。问题是,我确实直接在数据库中添加了habtm关系,通过“查找”获取它们,并尝试通过“保存全部”将它们保存回relationtable,但即使这样,也只会插入第一个条目,然后更新。因此,当我在habtm表中放入3个玩家关系时,在再次尝试保存它们之后,我仍然得到1。这就是困扰我的原因。