gpt4 book ai didi

Perl如何使用DBIx::Class漂亮的返回数据

转载 作者:行者123 更新时间:2023-12-05 08:18:08 25 4
gpt4 key购买 nike

我是 DBIx::Class 的新手。我将它用于 API 以从我的数据库中重新调整数据,我想用 DBIC 重新创建一个 SELECT * FROM 表。有了 DBI,它对我来说效果很好。
返回数据“漂亮”的最佳方法是什么?
我想以哈希数组的形式返回数据,例如:

[
{
id => 123,
name => 'name',
....
}
]

但是使用 my @rs = $schema->resultset('Product')->all;返回\@rs;。我没有得到我想要的输出。在使用 Data::Dumper 检查对象时,我得到以下信息:

$VAR1 = bless( {
'_column_data' => {
'name' => 'test',
'id' => 123'
},
'_result_source' => $VAR1->{'_result_source'},
'_in_storage' => 1
}, 'DB::Schema::Result::Product' );

我确定我误解了 DBIC 的概念。
我怎样才能只获取所有列的数据?谢谢大家的帮助!

最佳答案

Data::Dumper 只是泄露了数据结构的内容。这是 DB::Schema::Result::Product 对象的核心,它表示 Product 表的一行。

如果你想要一个对象的漂亮输出,你需要向对象询问。您可以调用DBIx::Class::Row他们的方法。如果您只需要对象中的行数据,请使用 get_columnsget_inflated_columns .它们返回一个哈希值,因此您需要引用。

my @rows = map { my %h = $_->get_columns; \%h } @rs;

关于Perl如何使用DBIx::Class漂亮的返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64162667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com