1

我正在尝试做类似的事情:

$schema->resultset('Foo')->create({ Property => 1,
                                       Bar => { 
                                                Property => 'non-unique',
                                             },
                                      });

其中 Bar 是与另一个表 Bar 的 belongs_to 关系,具有自动递增的主键。

问题是,在幕后,dbix 总是在进行选择并在 Bar 中查找 Property = 'non-unique' 的现有行,并将该行的 PK 插入到 Foo 中。我希望它做的是每次使用新的自动生成的主键在 Bar 中创建一个新行。

有没有办法告诉 DBIx 不要先搜索匹配的相关行,而是强制它始终创建相关行?

4

1 回答 1

2

create_related() 或 new_reated() 后者创建相关对象,前者创建对象并将其保存在 DB 中。

所以,给定一个名为“bars”的 Foo->Bar 关系,更像:

 $foo = $schema->resultset('Foo')->create({ Property => 1 });
 $bardata = {Property => 'non-unique'};                            
 $foo->create_related('bars', $bardata);
于 2012-07-26T15:43:17.770 回答