我需要替换每个视图文件中的一些内容。但是很多地方的内容只是一个文本,而不是一个变量,无法使用variable|replace()
过滤器。
有没有办法在显示之前获取视图(例如在Controller中),所以我可以将它传递给某个函数并返回准备显示内容?
或者有可能替换block
标签中的所有内容?
答案 0 :(得分:1)
Symfony控制器有2个函数render()
和renderView()
,前者呈现视图并返回Response
,后者只是呈现视图并返回字符串结果。
所以你可以在你的行动中:
$content = $this->renderView('my-view.html.twig', [...]);
$content = str_replace('my text', 'my new text', $content);
return new Response($content);