添加自定义过滤器Symfony 2.7后,Twig“资产”无法正常工作

时间:2015-10-15 10:11:49

标签: symfony filter twig

添加自定义过滤器后,我得到Twig语法错误,如: “第4行”的“TwigBundle:例外:exception_full.html.twig”中不存在“资产”功能。

我的推广:

<?php

namespace AlexanderBuerkle\ShopBundle\Twig;

use AlexanderBuerkle\ShopBundle\Twig\Extension;
use Twig_Extension;


class UnescapeExtension extends \Twig_Extension
{
    public function getFilters()
    {
        new \Twig_SimpleFilter('unescape', array($this, 'unescape'));
    }

    public function unescape($value)
    {
        return html_entity_decode($value);
    }

    public function getName()
    {
        return 'unescape_extension';
    }
}
?>

我在config.yml中调用该服务(因为我的前任也是这样做的):

# Twig Extensions
services:
    ShopBundle.twig.unescape_extension:
        class: AlexanderBuerkle\ShopBundle\Twig\UnescapeExtension
        tags:
                - { name: twig.extension }

为什么我的Twig功能会被覆盖?显然我错过了一些东西...... 任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

问题是无法在vendor / twig / twig / lib / Twig / Environment.php中加载过滤器,因为getFilters()没有返回数组。工作职能:

public function getFilters()
    {
        return array
        (
        new \Twig_SimpleFilter('unescape', array($this, 'unescape')),
        );
    }