2013-10-09 67 views
0

我有问题枝条延伸。我想检查我的变量是否匹配正则表达式。但我得到错误。枝条延伸错误,Symfony2

我的树枝扩展类:我services.xml文件的

<?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> 
    <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

我将是任何非常gratefull帮助这一点。

+0

它应该工作。你使用什么Symfony版本?你完全清除了缓存吗?你可以复制粘贴错误发生在你的缓存文件中的代码行吗? – COil

回答

3

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

-1

使用

'lastName'=> new \Twig_Function_Method($this, 'lastNameFunction')代替

和呼叫功能在树枝

{{ lastName(myvalue) }}

+1

'Twig_Function_Method'已弃用! –