jap*_*aph 0 perl template-toolkit
在我的模板(via Template Toolkit)中,我传递一个DateTime对象(来自DBIx::Class和 DBIx::Class::InflateColumn::DateTime).我可以在我的模板中执行obj.year和所有其他DateTime操作.但是对象在我的自定义过滤器中被字符串化.我基本上调用[% user.last_visited_date | time_ago %]time_ago是一个自定义过滤器,基本上看起来像这样:
sub timeago {
sub { my $datetime_obj = shift; #do more work }
}
Run Code Online (Sandbox Code Playgroud)
在这里我期待自定义过滤器中的DateTime obj,但它是stringify ..
我该如何解决这个问题?
不要使用过滤器,而是编写自定义插件:
[% YourPlugin.time_ago(user.last_visited_date) %]
Run Code Online (Sandbox Code Playgroud)
或者添加自定义vmethod:
[% user.last_visited_date.time_ago %]
Run Code Online (Sandbox Code Playgroud)
过滤器用于文本修改,例如HTML编码等.