При настройке пользовательского фильтра Twig (см. https://symfony.com/doc/current/templating/twig_extension.html ), как я могу вызвать существующий фильтр Twig в моей пользовательской функции?
https://stackoverflow.com/a/41551944/1668200 предполагает parent::dateFilter($timestamp, $format);
но это не работает:
Попытка вызвать неопределенный метод с именем «dateFilter» класса «Twig_Extension».
Пример, который вы связали, на самом деле некорректный. Правильный путь был бы таким,
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
, В этом случае ваш класс должен расширить этот класс
При настройке пользовательского фильтра Twig (см. https://symfony.com/doc/current/templating/twig_extension.html ), как я могу вызвать существующий фильтр Twig в моей пользовательской функции?
https://stackoverflow.com/a/41551944/1668200 предполагает parent::dateFilter($timestamp, $format);
но это не работает:
Попытка вызвать неопределенный метод с именем «dateFilter» класса «Twig_Extension».
Пример, который вы связали, на самом деле некорректный. Правильный путь был бы таким,
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
, В этом случае ваш класс должен расширить этот класс