【问题标题】:DBIx::Class resultset creating related data without the selectDBIx::Class 结果集在没有选择的情况下创建相关数据
【发布时间】:2012-07-24 10:28:51
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: dbix-class perl


    【解决方案1】:

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

    因此,给定名为“bars”的 Foo->Bar 关系,更像:

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

    【讨论】:

      猜你喜欢
      • 2012-02-15
      • 2011-06-27
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2010-10-24
      • 2014-03-30
      • 2012-03-29
      相关资源
      最近更新 更多