2017-10-27 9 views
3

をTwig_Extentionを使用することはできませんmyWidget.html.twigには、次のものがあります。は、私は、次のコントローラをレンダリング私のテンプレートのコントローラ

{% for key,url in urls %} 
     <img src="{{ censor(url) }}" /> 
{% endfor %} 

censorです以下の小枝プラグインを介して定義:

namespace AppBundle\Twig; 

class SanitizeArticlePhotosForList extends \Twig_Extension 
{ 
    public function getFilters() 
    { 
     return array(
      new \Twig_SimpleFilter('censor', array($this, 'sensorAction')), 
     ); 
    } 

    public function sensorAction($photoHtmlTag) 
    { 
     return str_replace(['tentacle','harem'],'censored',$photoHtmlTag); 
    } 
} 

しかし、私は、次のTwig_Error_Syntaxのエラーを取得:

Unknown "censor" function. 

は、あなたの仲間はなぜ知っていますか?私のservices.php上に私はこれらの設定を持っています:

use Symfony\Component\DependencyInjection\Definition; 
use Symfony\Component\DependencyInjection\Reference; 

// To use as default template 
$definition = new Definition(); 

$definition 
->setAutowired(true) 
->setAutoconfigured(true) 
->setPublic(false); 

$this->registerClasses($definition, 'AppBundle\\', '../../src/AppBundle/*', '../../src/AppBundle/{Entity,Repository,Resources,Tests}'); 

// Changes default config 
$definition->setPublic(true)->addTag('controller.service_arguments'); 

// $this is a reference to the current loader 
//Loafing Controllers 
$this->registerClasses($definition, 'AppBundle\\Controller\\', '../../src/AppBundle/Controller/*'); 
$this->registerClasses($definition, 'AppBundle\\Twig\\', '../../src/AppBundle/Twig/*'); 

あなたはどんな考えがありますか?

答えて

2

たぶんソリューションへのより多くのコンテンツを提供するために、この

{{ url | censor }}

+3

のようなあなたの拡張機能を呼び出してみてください:あなたの拡張は、フィルタではなく関数を定義します。これらは、小枝では別のものです。 – Joe

関連する問題