微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CakePHP如何处理带有/不带’id’字段的HABTM表?

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如何处理这种情况/关系?

解决方法:

游戏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约定.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐