我正在Text::Xslate使用HTML::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
返回一个数字而不是一个数组?