当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《CakePHP如何处理带有/不带'id'字段的HABTM表?》经验,为你挑选了2个好方法。

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



1> 小智..:

var $primaryKey = 'example_id'; $ primaryKey是你在寻找什么.

只需将其放在模型类上即可.



2> neilcrookes..:

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

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有