Twig扩展错误,Symfony2

时间:2013-10-09 10:28:28

标签: symfony twig

我有Twig Extension的问题。我想检查我的变量是否与正则表达式匹配。但我得错了。

我的枝条扩展类:

<?php
// src/GL/HomeBundle/Twig/LastNameExtension.php
namespace GL\HomeBundle\Twig;

class LastNameExtension extends \Twig_Extension
{
    public function getFunctions()
    {  
        return array(
            new \Twig_SimpleFunction('lastName', 'lastNameFunction')
        );
    }

    public function lastNameFunction($lastName)
    {
        $pattern = "/^[1-9]\d\d\-\d\d\d\-\d\d\-\d\d$/";

        return preg_match($pattern, $lastName);
    }

    public function getName()
    {
        return 'lastName';
    }
}
?>

我的services.xml文件的一部分

<services>
    <service id="gl.twig.lastName" class="GL\HomeBundle\Twig\LastNameExtension">
        <tag name="twig.extension" />
    </service>
</services>

我得到的错误是: : Error: Call to undefined function lastNameFunction() in C:\xampp\htdocs\wp_ubezpieczenia\app\cache\dev\twig\10\4c\8503d697949a099f75aa8c4c41a2.php line 156

我将非常感谢您对此的任何帮助。

2 个答案:

答案 0 :(得分:3)

new \Twig_SimpleFunction('lastName', 'lastNameFunction')替换为new \Twig_SimpleFunction('lastName', array($this, 'lastNameFunction')),否则您将调用函数“lastNameFunction”,而不是方法“LastNameExtension :: lastNameFunction”。

答案 1 :(得分:-1)

使用

'lastName'=> new \Twig_Function_Method($this, 'lastNameFunction')而不是

并使用

在树枝中调用函数

{{ lastName(myvalue) }}

相关问题