首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试保存CakePHP HABTM关系中的重复关联

问尝试保存CakePHP HABTM关系中的重复关联
EN

Stack Overflow用户
提问于 2014-08-27 05:23:39
回答 2查看 322关注 0票数 0

我也想知道这个问题的答案- https://stackoverflow.com/questions/24447879/cakephp-habtm-i-want-duplicates-at-save

我尝试了几种不同的方法,涉及unique = false,saveAll saveAssocaited,数组格式。不走运。

我的具体示例是传递这个数据数组,我在AvailablePackageController中使用了AvailablePackageController:

代码语言:javascript
复制
'AvailablePackage' => array(
    'title' => 'Tester',
    'description' => 'Tester description',
    'price' => '500.00',
    'image' => array(
        'name' => '',
        'type' => '',
        'tmp_name' => '',
        'error' => (int) 4,
        'size' => (int) 0
    )
),
'AvailableLesson' => array(
    'AvailableLesson' => array(
        (int) 0 => '23',
        (int) 1 => '23',
        (int) 2 => '23',
        (int) 3 => '9',
        (int) 4 => '9'
    )
)

正如您所看到的,我希望这个可用的包有可用的教训'23‘相关3次。在一个包中,您可以将相同的教训重复3次(在本例中)。

HABTM的设置是正确的,所有的工作都如预期的那样。在上面,它保存了2行,一行是23行,1行是9行。所以在关系的配置上没有问题。只是保存不了副本。

任何帮助都将不胜感激。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-27 08:07:54

这是一个复杂的HABTM关系

是在文档中提到

默认情况下,保存HasAndBelongsToMany关系时,CakePHP将在保存新行之前删除联接表中的所有行。例如,如果你有一个有10个孩子的俱乐部。然后你用两个孩子更新俱乐部。俱乐部将只有2个孩子,而不是12个。

不要为此使用HABTM,将联接表设为模型

habtm关系是一种简单的关系:

代码语言:javascript
复制
Thing <-has and belongs to many-> OtherThing

如果两个模型之间的链接数有一定的意义,那么几乎可以肯定,这不是一个简单的HABTM关系,实际上是另一种关系。

  • 竞赛hasMany获胜者
  • 获胜者belongsTo比赛
  • 获胜者belongsTo用户
  • 获奖者belongsTo奖
  • (胜利者有财产头寸)
  • 用户hasMany奖

在这种情况下,使连接表成为一个模型,将其视为一个hasMany关系,以及使用HABTM操作数据蒸发的问题。

在需要和适当的时候仍然可以使用HABTM关系。

票数 0
EN

Stack Overflow用户

发布于 2014-08-27 08:19:53

将有一个名为availablelessons_availablepackages的单独表,您需要为具有foreignkey和关联foreignkey的AvailableLesson和AvailablePackage模型定义HABTM,然后才能保存。所有保存的数据都将在availablelessons_availablepackages表中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25519456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档