如何使用新的TWIG扩展

时间:2017-11-22 09:42:08

标签: symfony twig extension-methods

我在如何在树枝模板中使用新创建的树枝扩展时遇到了麻烦,但除非我知道它有效,否则我不明白为什么

让我们解释一下这个例子

class MyTwigExtension extends \Twig_Extension 
{

    public function getTests(){
        return array('instanceof' =>  new \Twig_Test_Method($this, 'isInstanceof'),
                     'appenmantenimiento' => new \Twig_Test_Method($this, 'appEnMantenimiento')
                    );
    }


    public function isInstanceof($var, $clase) {
        $class = "AppBundle\\Entity\\".$clase;
        return  $var instanceof $class;
    }

    public function appEnMantenimiento(){
        check the DataBase....
        return TRUE or FALSE;
    }

    public function getName(){
        return "mytwig_extension";
    }

}

那么,我怎么能使用appEnMantenimiento函数,我的意思是

{% if entity is instanceof('MyClass') %} {# WORKS FINE #}
{% if appenmantenimiento() %} OK {% endif %} {# DOESN'T WORK #}
{% if true is appenmantenimiento() %} OK {% endif %} {# WORKS fine with the returned value form appenmantenimiento() #}

但问题是我不明白为什么

1 个答案:

答案 0 :(得分:1)

您是否尝试添加getFunctions方法? 有关详细信息,请参阅:https://twig.symfony.com/doc/2.x/advanced.html#id2

decode()