내 템플릿에 서버 시간대를 출력하고 싶습니다.나뭇 가지에 사용자 정의 함수 사용
내 템플릿 내가
my.twig.extension:
class: My\WebsiteBundle\Extensions\Twig\SomeTemplateHelper
tags:
- { name: twig.extension }
이 해당 번들에 대한 services.yml의 설정에서 다음
{{ getservertimezone }}
같은 것을 가지고 그리고 내 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() }}
전화를합니까?
Twig_Function_Method는 대신 Twig_SimpleFunction을 사용합니다. symfony doc https://github.com/symfony/symfony-docs/issues/3275에서 문제를 엽니 다. – gagarine
@ gagarine fixed –