2012-07-25 80 views
1

我試圖做這樣一個類似於創建相關數據:DBIx ::類的結果集,而不選擇

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

凡酒吧是一個belongs_to的關係到另一個表,酒吧,有一個自動遞增的主鍵。

問題是,在幕後,dbix始終在Bar中選擇並查找現有的行,並將該行的PK插入到Foo中。我希望它做的是每次使用新的自動生成的主鍵在Bar中創建一個新行。

有沒有辦法告訴DBIx不要先搜索匹配的相關行,而是強制它始終創建相關的行?

回答

2

create_related() or new_reated() 後者創建相關對象,前者創建對象並將其保存在數據庫中。

因此,給予Foo->酒吧關係稱爲 '酒吧',更像是:

$foo = $schema->resultset('Foo')->create({ Property => 1 }); 
$bardata = {Property => 'non-unique'};        
$foo->create_related('bars', $bardata);