Вызов встроенного фильтра в пользовательский фильтр Twig - PullRequest
0 голосов
/ 01 февраля 2019

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

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

Попытка вызова неопределенного метода с именем "dateFilter" из класса "Twig_Extension".

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

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

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);
    }

}
0 голосов
/ 01 февраля 2019

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

...