我正在尝试创建一个将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 %}