Twig字符串渲染和Symfony扩展

Pha*_*uum 4 symfony twig

我在我的Symfony2项目中使用twig来呈现模板变量:

$env = new \Twig_Environment(new \Twig_Loader_String());
$render = $env->render(
    $renderString,
    $params
);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用Symfony twig函数(例如'path','url','asset','controller'等)时,它会抛出异常"函数"路径"不存在于...中".有可能将此函数注入Twig_Environment吗?

Sim*_*amp 9

此方法无需克隆树枝环境即可工作:(在symfony 3中测试)

$rendered = $this->get('twig')
    ->createTemplate('Hi {{ name }}!')
    ->render(['name' => 'simon']);
Run Code Online (Sandbox Code Playgroud)

像path工作一样,Symfony扩展就像请求一样.


TaK*_*kEr 6

试试这个 :

$twig = clone $this->get('twig');
$twig->setLoader(new \Twig_Loader_String());
$rendered = $twig->render(
    "Test string template: {{ result|humanize }}",
    array("result" => "mega_success")
);
Run Code Online (Sandbox Code Playgroud)

比照 如何在Symfony2中将字符串呈现为Twig模板