我在向团队添加多个玩家时遇到问题。当我尝试插入多个玩家时,它只会更新属于团队的第一个插入条目。
但是我们从一开始就开始: 当我在一个有几个玩家的团队中调用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-call上),改变了独特的行为。我甚至将一些测试数据插入habtm-table并尝试将我从find('all')中获得的内容直接保存回数据库,但它只在插入第一个条目后更新每个条目。
任何想法都会受到赞赏。