2011-12-21 10 views
1

:私は私のバンドル内のフォルダ小枝/拡張を作成し、内部の拡張を入れているsymfonyの2:をnumber_format小枝拡張私は小枝拡張することを使用しようとした

<?php 

class Twig_Extensions_Extension_Number extends Twig_Extension 
{ 
    /** 
* Returns a list of filters. 
* 
* @return array 
*/ 
    public function getFilters() 
    { 
     return array('number' => new Twig_Filter_Function('twig_number_filter')); 
    } 

    /** 
* Name of this extension 
* 
* @return string 
*/ 
    public function getName() 
    { 
     return 'Number'; 
    } 
} 

function twig_number_filter($number, $decimals = 0, $dec_point = '.', $thousands_sep = ',') 
{ 
    return number_format($number, $decimals, $dec_point, $thousands_sep); 
} 

services: 
    project.twig.extension: 
     class: App\AppBundle\Twig\Extension\NumberExtension 
     tags: 
      - { name: twig.extension } 

そして、このようないくつかのビューにフィルタを使用しようとしました::

は、その後、私はそれを使用するservices.ymlファイルを修正

​​

しかし、私は次のエラー得た:

Fatal error: Call to undefined function twig_number_filter() in C:\wamp\www\myapp\app\cache\dev\twig\de\cc\18a233a6ed21bfc26e40b6654c9c.php on line 83

答えて

1

getFilters方法のためにこれを試してみてください:

public function getFilters() 
{ 
    return array('number' => new \Twig_Filter_Method($this, 'twig_number_filter')); 
} 

Twig_Filter_Functionは、あなたのクラスのメソッドを呼び出します渡さ$thisでグローバル名前空間、Twig_Filter_Methodから関数を呼び出しています。

+0

ありがとうございました!完璧に動作します。 – Yoot

関連する問題