Perl 从数据库检索数据在DBIx::类中有很多关系
给出一个简单的两个表的例子-术语和定义-其中术语Perl 从数据库检索数据在DBIx::类中有很多关系,perl,dbix-class,Perl,Dbix Class,给出一个简单的两个表的例子-术语和定义-其中术语有许多定义,而定义属于术语,所有术语和相应的定义都将以某种方式获取和显示 以下是我到目前为止得出的结论: my $terms= $schema->resultset('Term')->search(undef, { prefetch => 'definitions', }); while (my $term = $terms->next) { my @terms; push @terms, $ter
有许多定义,而定义属于术语,所有术语和相应的定义都将以某种方式获取和显示
以下是我到目前为止得出的结论:
my $terms= $schema->resultset('Term')->search(undef, {
prefetch => 'definitions',
});
while (my $term = $terms->next) {
my @terms;
push @terms, $term->term;
my $definitions = $term->definitions;
my @definitions;
while (my $definition = $definitions->next) {
push @definitions, $definitions;
}
...
}
它确实起作用,但我想知道是否可以采取一种不同的、不那么粗糙的方法。应该会有所帮助。例如,请参见
这看起来像是你要做的;我真的不知道。创建一个新数组,将其推上,然后让它超出范围,这一事实实际上毫无意义。无论如何,如果我理解正确,您所需要的只是DBIx::Class::ResultSet中的all方法。这些示例并没有真正展示如何提取相关数据;特别是,当关系类型为multi
时,数组只不过是此示例的一部分。all
方法确实是我想要的。谢谢
my $terms= $schema->resultset('Term')->search(undef, {
prefetch => 'definitions',
});
my @terms = $terms->all;
my @definitions = map $_->definitions->all, @terms;