迭代hashref模板工具包

时间:2014-08-03 22:01:49

标签: template-toolkit

我传递给模板的数据如下:

这是'门票' hashref在以下foreach中使用:

$VAR1 = {
    '1234' => {'request_time' => '1405392890', 'id' => '1234'},
    '9993' => {'request_time' => '1485035309', 'id' => '9993'}
};

我正在做以下事情:

[% FOREACH ticket IN tickets %]
    <td>[% ticket.request_time %]</td>
    <td>[% ticket.id %]</td>
[% END -%]

但这似乎并没有显示任何东西。有人可以指出我错在哪里吗?

2 个答案:

答案 0 :(得分:3)

您还需要注意TT不会将数字哈希键视为数组元素引用。如果存在混淆的风险(或者如果你在散列键和vmethod名称之间发生冲突),则vmethod item()特别有用:

[% FOREACH ticket IN tickets.keys.nsort %]
    <td>[% tickets.item(ticket).request_time %]</td>
    <td>[% ticket %]</td>
[% END -%]

答案 1 :(得分:1)

我不知道你必须使用&#39;键&#39; vmethod:

[% FOREACH ticket IN tickets.keys %]
    <td>[% tickets.$ticket.request_time %]</td>
    <td>[% tickets.$ticket.id %]</td>
[% END -%]