无法识别Twig自定义过滤器

时间:2015-03-25 14:45:58

标签: symfony filter twig

我正在尝试创建一个将Array转换为String的过滤器。

错误

The filter "toString" does not exist in FooBarMainBundle:Page:News.html.twig at line 15

到目前为止,我有以下内容,主要是遵循官方文档,但在渲染过程中无法找到过滤器。

应用/配置/ services.yml

services:
    foobar_main.twig.main_extension:
        class: FooBar\MainBundle\Twig\MainExtension
        public: false
        tags:
            - { name: twig.extension }

的src / FooBar的/ MainBundle /枝条/ MainExtension.php

<?php
namespace FooBar\MainBundle\Twig;

class MainExtension extends \Twig_Extension
{
    public function getFilters()
    {
        return array(
            'toString' => new \Twig_SimpleFilter('toString', array($this, 'toString'))
        );
    }

    public function toString($data)
    {
        return implode(", ", $data);
    }

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

Twig模板

{% createphp cmfMainContent as="rdf" %}
<div {{ createphp_attributes(rdf) }}>
    {% set tags = createphp_content( rdf.tags ) %}
    <h5 {{ createphp_attributes( rdf.tags ) }}>{{ tags|toString }}</h5>
</div>
{% endcreatephp %}

0 个答案:

没有答案