【发布时间】:2015-10-13 14:56:36
【问题描述】:
我是 Perl 和 DBIx::Class 的新手。
这就是我从语言 = 5 的表翻译中获得meaning_ids 的方式:
my $translations = $schema -> resultset('Translation')->search({ language => '5'});
之后我试图将我的数据从数据库推送到我的数组数据中:
while ( my $translation =$translations->next ) {
push @{ $data }, {
meaning_id => $translation-> meaning
};
}
$self->body(encode_json $data );
如果我这样做,我会收到以下错误:
遇到的对象 'TranslationDB::Schema::Result::Language=HASH(0x9707158)',但两者都不是 allow_blessed 、 convert_blessed 和 allow_tags 设置已启用 (或缺少 TO_JSON/FREEZE 方法)
但如果我这样做:
while ( my $translation =$translations->next ) {
push @{ $data }, {
meaning_id => 0+ $translation-> meaning
};
}
$self->body(encode_json $data );
我不再收到错误,但意思不是数据库中的数字。它太大了(类似于17789000,但只有直到7000 的数字才有效)。
有没有简单的方法告诉 Perl meaning_id 是一个 INT 而不是一个字符串?
【问题讨论】:
标签: json perl dbix-class