2013-10-09 87 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'已棄用! –