CakePHP如何处理没有id
列的表?
HABTM是一个"拥有并且属于很多"的表,这意味着多对多的数据库关系
我正在尝试保存一些关系数据,但是Cake想要"SELECT LAST_INSERT_ID()",但是它试图保存的表没有id列,因此id用于不同的表.
具体来说,我有"游戏"和"玩家"的表格,以及一个名为"game_players"的关系表.game_players有字段game_id和player_id,并且在这张桌子上我无法保存关系数据.
澄清一下:这是导致问题的game_player表.该表没有,也没有id字段.它只存储玩家和游戏之间的关系,主键是(game_id,player_id)
CakePHP如何处理这种情况/关系?
var $primaryKey = 'example_id';
$ primaryKey是你在寻找什么.
只需将其放在模型类上即可.
游戏HABTM播放器,反之亦然?如果是这样,您的联接表games_players上不应该有ID字段.你应该能够通过调用带有数据数据的游戏保存来保存数据
$this->Game->save(array( 'Player'=>array( 'Player'=>array( 1,4,5,9 // Player IDs ) ) ));
在这种情况下,Cake不会尝试获取最后一个插入ID.
但是,如果游戏没有HABTM播放器,并且您直接在模型GamePlayer上调用save,它应该有一个ID字段以符合Cake约定.