Text::Xslate 返回函数调用的错误值

问题描述 投票:0回答:1

我将 Text::XslateHTML::FormHandler 一起使用(HTML::FormHandler 实际上由 CatalystX::SimpleLogin 在幕后使用,以防有帮助)。我正在使用 Text::Xslate 的 TTerse 语法并尝试显示模板中的错误,如下所示:

[% FOR field IN login_form.error_fields %]
    [% FOR error IN field.errors %]
        <p>[% field.label _ ': ' _ error %]</p>
    [% END %]
[% END %]

如果我只是打印出来

[% login_form %]

它返回

CatalystX::SimpleLogin::Form::Login=HASH(0x7fbb21722a20)
,这是我所期望的。但是当我调用
error_fields
时,它只返回
1
。但是,当我使用 Template::Toolkit 而不是 Text::Xslate 时,它可以正常工作并显示错误。有谁知道为什么
error_fields
返回数字而不是数组?

perl catalyst template-toolkit html-formhandler text-xslate
1个回答
0
投票

这可能是因为 XSlate 在标量上下文中调用方法并且需要 arrayref。似乎错误以数组形式返回https://metacpan.org/release/GHANK/HTML-FormHandler-0.40068/source/lib/HTML/FormHandler.pm#L506

© www.soinside.com 2019 - 2024. All rights reserved.