我刚刚开始使用 DBx::Class 并开始稍微理解,但它很复杂。
我想调用“recursive_update”,但我无法管理如何使用它。
如果我理解 documentation对了,我必须将它包含在由 DBIx::Class::Schema::Loader 创建的 .../My/Schema.pm 中?
__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"
我的错在哪里?
最佳答案
recursive_update
必须在 ResultSet 对象上调用,而不是在 Result 对象上调用。
您可能想向您的 Result 基类添加一个辅助方法(如果您已经有其他方法创建它,因为它对很多事情都有意义),该方法获取仅限于调用它的 Result 对象的 ResultSet 并调用 recursive_update
就可以了。
关于perl - 如何使用recursive_update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74090103/