2016-04-17 7 views
1

では利用できませんフィルタリング:小枝が、私は私のカスタムフィルタを呼び出すと、それはで失敗ジェネレータ

[Twig_Error_Syntax] Unknown "snake_case" filter in "controller/controller.php.twig" at line 86. 

サービスが登録されています

services: 
l91_sulu_backend.twig.converter.extension: 
    class: L91\Sulu\Bundle\BackendBundle\Twig\ConverterTwigExtension 
    tags: 
     - { name: twig.extension } 

それはcontainer:debug

クラスのルックスの下に表示されますこのように:

<?php 

namespace L91\Sulu\Bundle\BackendBundle\Twig; 

class ConverterTwigExtension extends \Twig_Extension 
{ 
    /** 
    * {@inheritdoc} 
    */ 
    public function getFilters() 
    { 
     return [ 
      new \Twig_SimpleFilter('snake_case', [$this, 'snakeCaseFilter']), 
     ]; 
    } 

    /** 
    * @param string $input 
    * 
    * @return string 
    */ 
    public function snakeCaseFilter($input) 
    { 
     return strrev($input); // just to test 
    } 

    /** 
    * {@inheritdoc} 
    */ 
    public function getName() 
    { 
     return 'l91_sulu_backend_converter'; 
    } 
} 

またtwig:debug私のsnake_caseフィルターをリストしてください。

twigファイルは、symfonyコマンドによって呼び出されるGeneratorによってレンダリングされます。ジェネレータを使用すると、すべての使用の拡張機能を自分で登録する必要があり、独自のTwigEnvironmentを使用するよう

そして、ここでは、フィルタのコール

'{{ translatePrefix }}.{{ column|snake_case }}', 

答えて

1

はそれを見つけました。

/** 
* @return \Twig_Environment 
*/ 
public function getTwigEnvironment() 
{ 
    $twigEnvironment = parent::getTwigEnvironment(); 

    $twigEnvironment->addExtension(new ConverterTwigExtension()); 

    return $twigEnvironment; 
} 
関連する問題