是否有可能在twig中注册一个被调用的回调,当模板变量不存在时返回默认值或类似魔术__get方法的东西?
摘自: http://twig.sensiolabs.org/doc/filters/default.html
{{ 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) }}
您应该扩展Twig_Template
,并覆盖getContext
函数。这个函数的默认行为是在没有设置变量时抛出异常,它应该只抛出一个错误,而不是结束呈现过程。
请注意,我使用的是旧的Twig版本,所以这可能有变化。要调用的异常函数是$twig->enableStrictVariables();