Я новичок в Perl и DBIx :: Class.Perl DBIx :: Класс встречается Объект Json
Это, как я получаю мой meaning_ids
от перевода таблицы, где язык = 5:
my $translations = $schema -> resultset('Translation')->search({ language => '5'});
После этого я пытаюсь нажать мои данные из базы данных в мои данные массива:
while (my $translation =$translations->next) {
push @{ $data }, {
meaning_id => $translation-> meaning
};
}
$self->body(encode_json $data);
Если я делаю это так, я получаю следующее сообщение об ошибке:
encountered object 'TranslationDB::Schema::Result::Language=HASH(0x9707158)', but neither allow_blessed , convert_blessed nor allow_tags settings are enabled (or TO_JSON/FREEZE method missing)
Но если я это сделать Лик e что:
while (my $translation =$translations->next) {
push @{ $data }, {
meaning_id => 0+ $translation-> meaning
};
}
$self->body(encode_json $data);
Я больше не получаю ошибку, но значение не является номером из базы данных. Это слишком большой (что-то вроде 17789000
, но действительны только цифры до 7000
).
Есть ли простой способ сказать Perl, что meaning_id
является INT, а не строкой?
Я мог бы получить правильное значение смысл_id с помощью $ translation-> mean-> mean_id – Hansanho
Спасибо за помощь и редактирование моего сообщения :) хорошо провести день – Hansanho