我正在尝试做类似的事情:
$schema->resultset('Foo')->create({ Property => 1,
Bar => {
Property => 'non-unique',
},
});
其中Bar是另一个表Bar的belongs_to关系,带有自动递增的主键。
问题在于幕后,dbix总是在选择并在Bar中查找现有行,其中Property ='non-unique',并将该行的PK插入Foo。我希望它做的是每次使用新的自动生成的主键在Bar中创建一个新行。
有没有办法告诉DBIx不要先搜索匹配的相关行,而是强制它始终创建相关的行?
答案 0 :(得分: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);