变量不存在时的Twig调用函数

时间:2015-08-14 13:11:54

标签: php methods twig magic-methods

是否有可能在twig中注册一个被调用的回调,当一个模板变量不存在以返回默认值或类似魔法__get方法时?

2 个答案:

答案 0 :(得分:1)

摘自: JSFiddle Demo - View it in print preview

{{ var|default('var is not defined') }}

{{ var.foo|default('foo item on var is not defined') }}

{{ var['foo']|default('foo item on var is not defined') }}

{{ ''|default('passed var is empty')  }}

想象一下,您twig extension country filter {{ myNullVariable|default('FR'|country) }}

/**
 * @return int
 */
public function add ($a, $b)
{
    return $a+$b;
}

/**
 * @return array
 */
public function toArray ($a, $b)
{
    return array($a, $b);
}

答案 1 :(得分:0)

您应该扩展Twig_Template,并覆盖函数getContext。此函数的默认行为是在未设置变量时抛出异常,并且它应该只引发错误,而不是结束渲染过程。

请注意,我使用旧的Twig版本,因此可能会有所更改。要调用的函数是$twig->enableStrictVariables();