2016-07-29 53 views
0

我需要替换每个文件中的一些内容。但在许多地方的内容只是一个文本,而不是一个变量,我不能使用variable|replace()过滤器。Symfony和Twig,预渲染,解析视图,替换内容

有没有什么办法在显示之前获得视图(例如在控制器)内容,所以我可以将它传递给某个函数并返回准备显示内容? 或者也许有替代block标记中的所有内容的方法?

+1

$这个 - >的RenderView(twigname,阵列( 'TEXT_TO_REPLACE''=> $文本),这是你在找什么 – jonju

+1

你为什么不只是?改变你的意见,并使其成为一个变量? – NDM

回答

1

Symfony控制器有两个功能render()renderView(),前者呈现视图并返回Response,后者只呈现视图并返回字符串结果。

,所以你可以在你的行动:

$content = $this->renderView('my-view.html.twig', [...]); 

$content = str_replace('my text', 'my new text', $content); 

return new Response($content); 
+0

这就是它!这工作确切如何我需要它:) – unbreak