繁体   English   中英

Perl和模板工具包:在自定义过滤器中对对象进行字符串化

[英]Perl and Template Toolkit: object stringify in custom filter

在我的模板中(通过Template Toolkit ),我传递了一个DateTime对象(来自DBIx::ClassDBIx::Class::InflateColumn::DateTime )。 我可以在模板中执行obj.year和所有其他DateTime操作。 但是对象在我的自定义过滤器中被字符串化了。 我基本上是在打电话[% user.last_visited_date | time_ago %] [% user.last_visited_date | time_ago %] ,其中time_ago是自定义过滤器,基本上是这样的:

sub timeago { 
   sub { my $datetime_obj = shift; #do more work }
}

在这里,我期望在自定义过滤器中使用DateTime obj,但它是stringify ..

我该如何解决?

不要为此使用过滤器,而是编写一个自定义插件

[% YourPlugin.time_ago(user.last_visited_date) %]

或添加自定义vmethod

[% user.last_visited_date.time_ago %]

过滤器用于文本处理,例如HTML编码等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM