0

Twig 拡張機能に問題があります。変数が正規表現と一致するかどうかを確認したいと思います。しかし、エラーが発生しました。

私の小枝拡張クラス:

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

これについての助けに非常に感謝します。

4

2 に答える 2

3

new \Twig_SimpleFunction('lastName', 'lastNameFunction')そうしないと、メソッド「LastNameExtension:: lastNameFunction new \Twig_SimpleFunction('lastName', array($this, 'lastNameFunction'))」ではなく、関数「lastNameFunction」を呼び出すことになります。

于 2013-10-09T11:12:06.243 に答える