0

我已经关注了关于这个主题的Symfony2 文档,但是我的 twig 扩展没有被 twig 看到/识别。

我的扩展类:

namespace Acme\MyBundle\Twig;

class RoundExtension extends \Twig_Extension
{
    public function getFilters()
    {
        return array(new \Twig_SimpleFilter('round', array($this, 'roundFilter')));
    }

    public function roundFilter($number, $factor = 4)
    {
        $round = (ceil($number * $factor)) / $factor;

        return number_format($round, 2);
    }

    public function getName()
    {
        return 'round_extension';
    }
}

还有我的 services.yml:

services:
    acme.twig.round_extension:
        class: Acme\MyBundle\Twig\RoundExtension
        tags:
            - { name: twig.extension }

最后,错误:

MyBundle:Survey:results.html.twig 第 38 行中不存在过滤器“round”

我不确定如何进行。

4

2 回答 2

1

对于发现此问题的人,请不要遵循已接受的答案。Twig_Filter_Method已弃用并将在 Twig 2.0 中删除。Twig_SimpleFilter必须改为使用。可能作者只需要更新他的 Twig 版本。

于 2013-11-29T19:12:13.803 回答
0

尝试使用Twig_Filter_Method,而不是Twig_SimpleFilter

于 2013-07-09T07:04:06.327 回答