Вызов встроенного фильтра в пользовательский фильтр Twig

При настройке пользовательского фильтра Twig (см. https://symfony.com/doc/current/templating/twig_extension.html ), как я могу вызвать существующий фильтр Twig в моей пользовательской функции?

https://stackoverflow.com/a/41551944/1668200 предполагает parent::dateFilter($timestamp, $format); но это не работает:

Попытка вызвать неопределенный метод с именем «dateFilter» класса «Twig_Extension».

0

Решение

Пример, который вы связали, на самом деле некорректный. Правильный путь был бы таким,

class DateEmptyIfNull extends Twig_Extension // or: extends AbstractExtension
{
public function getFilters()
{
return array(
new TwigFilter('date', [ $this, 'dateFilter'], ['needs_environment' => true, ]),
);
}

public function dateFilter(Twig_Environment $env, $timestamp, $format = 'F j, Y H:i')
{
return $timestamp === null ? '' : twig_date_format_filter($env, $timestamp, $format);
}

}
1

Другие решения

Метод dateFilter() принадлежит к классу DateEmptyIfNull, В этом случае ваш класс должен расширить этот класс

-2

При настройке пользовательского фильтра Twig (см. https://symfony.com/doc/current/templating/twig_extension.html ), как я могу вызвать существующий фильтр Twig в моей пользовательской функции?

https://stackoverflow.com/a/41551944/1668200 предполагает parent::dateFilter($timestamp, $format); но это не работает:

Попытка вызвать неопределенный метод с именем «dateFilter» класса «Twig_Extension».

0

Пример, который вы связали, на самом деле некорректный. Правильный путь был бы таким,

class DateEmptyIfNull extends Twig_Extension // or: extends AbstractExtension
{
public function getFilters()
{
return array(
new TwigFilter('date', [ $this, 'dateFilter'], ['needs_environment' => true, ]),
);
}

public function dateFilter(Twig_Environment $env, $timestamp, $format = 'F j, Y H:i')
{
return $timestamp === null ? '' : twig_date_format_filter($env, $timestamp, $format);
}

}

Метод dateFilter() принадлежит к классу DateEmptyIfNull, В этом случае ваш класс должен расширить этот класс

active «data-shortcut =» A
самый старый «data-shortcut =» O
голосует «data-shortcut =» V
1
По вопросам рекламы [email protected]