【问题标题】:Symfony 2 : number_format Twig ExtensionSymfony 2:number_format Twig 扩展
【发布时间】:2011-12-21 16:06:24
【问题描述】:

我尝试使用 Twig 扩展:

<?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);
}

我在我的包中创建了一个文件夹 Twig/Extension 并将 Extension 放入其中。

然后我修改了 services.yml 文件以使用它:

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

并尝试在某些视图中使用过滤器:

{{ 50|number(2, ".", ",") }}

但我收到以下错误:

致命错误:调用未定义的函数 twig_number_filter() C:\wamp\www\myapp\app\cache\dev\twig\de\cc\18a233a6ed21bfc26e40b6654c9c.php 在第 83 行

有什么想法吗?

【问题讨论】:

    标签: symfony twig number-formatting


    【解决方案1】:

    试试这个getFilters 方法:

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

    Twig_Filter_Function 正在从全局命名空间调用函数,Twig_Filter_Method$this 传递将调用您的类方法。

    【讨论】:

    • 非常感谢!完美运行。
    猜你喜欢
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多