将 DBIx::Class::Result 转换为散列
Convert a DBIx::Class::Result into a hash
使用 DBIx::Class,谢天谢地,我找到了解决问题的方法。但我确信必须有更好的方法。
my $record = $schema->resultset("food")->create({name=>"bacon"});
我如何将这条记录变成一个简单的 hashref 而不是必须在之后立即调用。
my record = $schema->resultset("food")->search({name=>"bacon"})->hashref_array();
理想情况下,我希望能够编写一个像
一样简单的代码片段
{record=> $record}
而不是
{record => {name => $record->name, $record->food_id, ...}}
如果 table 有很多列,这会让我抓狂。
我猜你说的是 DBIx::Class
?
my $record = $schema->resultset("food")->create({name=>"bacon"});
my %record_columns = $record->get_columns;
# or, to get a HashRef directly
my $cols = { $record->get_columns };
# or, as you've asked for
my $foo = { record => { $record->get_columns } };
您要查找的内容已包含在 DBIx::Class 中,如 DBIx::Class::ResultClass::HashRefInflator。
使用 DBIx::Class,谢天谢地,我找到了解决问题的方法。但我确信必须有更好的方法。
my $record = $schema->resultset("food")->create({name=>"bacon"});
我如何将这条记录变成一个简单的 hashref 而不是必须在之后立即调用。
my record = $schema->resultset("food")->search({name=>"bacon"})->hashref_array();
理想情况下,我希望能够编写一个像
一样简单的代码片段 {record=> $record}
而不是
{record => {name => $record->name, $record->food_id, ...}}
如果 table 有很多列,这会让我抓狂。
我猜你说的是 DBIx::Class
?
my $record = $schema->resultset("food")->create({name=>"bacon"});
my %record_columns = $record->get_columns;
# or, to get a HashRef directly
my $cols = { $record->get_columns };
# or, as you've asked for
my $foo = { record => { $record->get_columns } };
您要查找的内容已包含在 DBIx::Class 中,如 DBIx::Class::ResultClass::HashRefInflator。