perl 如何使用recursive_update

fslejnso  于 2022-11-15  发布在  Perl
关注(0)|答案(1)|浏览(159)

我刚刚开始使用DBx::Class,并开始稍微理解,但它很复杂。
我想调用“recursive_update”,但我无法管理如何使用它。
如果我理解正确的documentation,我必须将其包含在Schema.pm由DBIx::Class::Schema::Loader创建的.../My/ www.example.com中。

__PACKAGE__->load_namespaces(default_resultset_class => '+DBIx::Class::ResultSet::RecursiveUpdate');

当我想要更新数据时,我使用具有关系的ResultSet。

my $result = $schema->resultset('Table')->find($id});
$result->recursive_update({
            'rel_table' => [....),
});

不幸是,我遇到了一个错误:

Can't locate object method "recursive_update" via package My::Schema::Result::Table"

我的错在哪里?

monwx1rj

monwx1rj1#

recursive_update必须在ResultSet对象上呼叫,而不是在Result对象上呼叫。
您可能希望向Result基类添加一个helper方法(如果您已经有一个其他方法创建它,因为它对许多事情都有意义),该方法将ResultSet限制为在其上调用它的Result对象,并在其上调用recursive_update

相关问题