添加自定义过滤器后,我得到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功能会被覆盖?显然我错过了一些东西...... 任何帮助将不胜感激!
答案 0 :(得分:0)
问题是无法在vendor / twig / twig / lib / Twig / Environment.php中加载过滤器,因为getFilters()
没有返回数组。工作职能:
public function getFilters()
{
return array
(
new \Twig_SimpleFilter('unescape', array($this, 'unescape')),
);
}