我刚刚开始使用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"
我的错在哪里?
1条答案
按热度按时间monwx1rj1#
recursive_update
必须在ResultSet对象上呼叫,而不是在Result对象上呼叫。您可能希望向Result基类添加一个helper方法(如果您已经有一个其他方法创建它,因为它对许多事情都有意义),该方法将ResultSet限制为在其上调用它的Result对象,并在其上调用
recursive_update
。