2013-10-09 4 views
0

Twig Extension에 문제가 있습니다. 내 변수가 정규식과 일치하는지 확인하고 싶습니다. 그러나 나는 잘못했다.나뭇 가지 확장 오류, 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

나뭇 가지에

'lastName'=> new \Twig_Function_Method($this, 'lastNameFunction') 대신

및 호출 기능. 어떤 Symfony 버전을 사용하고 있습니까? 캐시를 완전히 지웠습니까? 캐시 된 파일에서 오류가 발생한 행의 코드를 복사하여 복사 할 수 있습니까? – COil

답변

3

new \Twig_SimpleFunction('lastName', 'lastNameFunction')new \Twig_SimpleFunction('lastName', array($this, 'lastNameFunction'))으로 바꾸십시오. 그렇지 않으면 메서드 "LastNameExtension :: lastNameFunction"이 아닌 "lastNameFunction"함수가 호출됩니다.

-1

사용이 작동합니다

{{ lastName(myvalue) }}

+1

'Twig_Function_Method'는 더 이상 사용되지 않습니다! –

관련 문제