我在Symfony2项目中使用twig来渲染模板变量:
$env = new \Twig_Environment(new \Twig_Loader_String());
$render = $env->render(
$renderString,
$params
);
但是当我尝试使用Symfony twig函数(例如'path','url','asset','controller'等)时,会抛出异常“函数”路径“不存在于......” 。 有可能将此函数注入Twig_Environment吗?
答案 0 :(得分:7)
此方法无需克隆树枝环境即可工作:(在symfony 3中测试)
$rendered = $this->get('twig')
->createTemplate('Hi {{ name }}!')
->render(['name' => 'simon']);
像path
这样的Symfony扩展可以像请求一样工作。
答案 1 :(得分:6)
试试这个:
$twig = clone $this->get('twig');
$twig->setLoader(new \Twig_Loader_String());
$rendered = $twig->render(
"Test string template: {{ result|humanize }}",
array("result" => "mega_success")
);