我也想知道这个答案-https: //stackoverflow.com/questions/24447879/cakephp-habtm-i-want-duplicates-at-save
我已经尝试过一些关于unique = false,saveAll saveAssocaited,数组格式的其他事情。没运气。
我的特定示例正在传递此数据数组,并且在我的AvailablePackageController中使用saveAll:
'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,一列为9。因此,关系的配置没有问题。它只是不会保存重复项。
任何帮助将不胜感激。谢谢。
它在文档中提到:
默认情况下,保存HasAndBelongsToMany关系时,CakePHP将在保存新行之前删除联接表上的所有行。例如,如果您有一个包含10个子级的俱乐部。然后,您更新有2个孩子的俱乐部。俱乐部只有2个孩子,没有12个孩子。
Habtm关系很简单:
Thing <-has and belongs to many-> OtherThing
如果两个模型之间的链接数具有一定意义,那么几乎可以肯定这不是简单的HABTM关系,而实际上是其他原因,例如
在这种情况下,使联接表成为模型,将其视为hasMany关系,并且使用HABTM操纵数据的问题就消失了。
仍然可以在需要和适当时使用HABTM关系。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句