是否可以通過調用Twig_SimpleFunction來修改當前的樹枝上下文?Twig_SimpleFunction可以修改上下文嗎?
我有下面的函數註冊:
<?php
namespace Craft;
class TwiggedTwigExtension extends \Twig_Extension
{
public function getName()
{
return 'Twigged';
}
public function getFunctions()
{
return array(
'setContextVar' => new \Twig_SimpleFunction('setContextVar', array($this, 'setContextVar'), array('needs_context' => true)),
);
}
public function setContextVar($context, $str, $val)
{
$context['context'][$str] = $val;
var_dump(array_keys($context['context']));
}
}
當從一個模板被稱爲像這樣{{ setContextVar('hellow', 'world') }}
,後續代碼var_dump顯示修改後的內容。但是像{{ dump(_context|keys) }}
這樣的模板快速檢查不會顯示修改的上下文。
我該怎麼做呢?
您是否正確定義了函數,如[here](http://twig.sensiolabs.org/doc/advanced.html#context-aware-filters)所述的'need_context'參數? – Matteo
是的,我相信。這裏是一個pastebin - http://pastebin.com/D8ZnKKWm – Fyrebase