在我的模板中,我想输出服务器时区。
我的模板有类似的东西
{{ getservertimezone }}
然后在services.yml
我拥有的那个捆绑包的配置
my.twig.extension:
class: My\WebsiteBundle\Extensions\Twig\SomeTemplateHelper
tags:
- { name: twig.extension }
And my SomeTemplateHelper
好像
namespace My\WebsiteBundle\Extensions\Twig;
class SomeTemplateHelper extends \Twig_Extension
{
public function getFilters()
{
return array(
'getservertimezone' => new \Twig_Filter_Method($this, 'getServerTimeZone'),
);
}
public function getServerTimeZone()
{
if (date_default_timezone_get()) {
return date_default_timezone_get();
} else if (ini_get('date.timezone')) {
return ini_get('date.timezone');
} else {
return false;
}
}
public function getName()
{
return 'some_helper';
}
}
但我无法调用此方法,除非它像过滤器一样使用:{{ someval | getservertimezone }}
;有没有办法直接做{{ getservertimezone() }}
call?
Use getFunctions()
代替getFilters()
public function getFunctions()
{
return array(
new \Twig_SimpleFunction('server_time_zone', array($this, 'getServerTimeZone')),
);
}
Twig 过滤器用于过滤某些值。
{{ "some value" | filter_name_here }}
顺便说一句,您可以在同一个类中定义过滤器和函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)