我也想知道这个问题的答案- https://stackoverflow.com/questions/24447879/cakephp-habtm-i-want-duplicates-at-save
我尝试了几种不同的方法,涉及unique = false,saveAll saveAssocaited,数组格式。不走运。
我的具体示例是传递这个数据数组,我在AvailablePackageController中使用了AvailablePackageController:
'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行。所以在关系的配置上没有问题。只是保存不了副本。
任何帮助都将不胜感激。谢谢。
发布于 2014-08-27 08:07:54
这是一个复杂的HABTM关系
默认情况下,保存HasAndBelongsToMany关系时,CakePHP将在保存新行之前删除联接表中的所有行。例如,如果你有一个有10个孩子的俱乐部。然后你用两个孩子更新俱乐部。俱乐部将只有2个孩子,而不是12个。
不要为此使用HABTM,将联接表设为模型
habtm关系是一种简单的关系:
Thing <-has and belongs to many-> OtherThing如果两个模型之间的链接数有一定的意义,那么几乎可以肯定,这不是一个简单的HABTM关系,实际上是另一种关系。
在这种情况下,使连接表成为一个模型,将其视为一个hasMany关系,以及使用HABTM操作数据蒸发的问题。
在需要和适当的时候仍然可以使用HABTM关系。
发布于 2014-08-27 08:19:53
将有一个名为availablelessons_availablepackages的单独表,您需要为具有foreignkey和关联foreignkey的AvailableLesson和AvailablePackage模型定义HABTM,然后才能保存。所有保存的数据都将在availablelessons_availablepackages表中。
https://stackoverflow.com/questions/25519456
复制相似问题