0
我需要替换每个文件中的一些内容。但在许多地方的内容只是一个文本,而不是一个变量,我不能使用variable|replace()
过滤器。Symfony和Twig,预渲染,解析视图,替换内容
有没有什么办法在显示之前获得视图(例如在控制器)内容,所以我可以将它传递给某个函数并返回准备显示内容? 或者也许有替代block
标记中的所有内容的方法?
我需要替换每个文件中的一些内容。但在许多地方的内容只是一个文本,而不是一个变量,我不能使用variable|replace()
过滤器。Symfony和Twig,预渲染,解析视图,替换内容
有没有什么办法在显示之前获得视图(例如在控制器)内容,所以我可以将它传递给某个函数并返回准备显示内容? 或者也许有替代block
标记中的所有内容的方法?
Symfony控制器有两个功能render()
和renderView()
,前者呈现视图并返回Response
,后者只呈现视图并返回字符串结果。
,所以你可以在你的行动:
$content = $this->renderView('my-view.html.twig', [...]);
$content = str_replace('my text', 'my new text', $content);
return new Response($content);
这就是它!这工作确切如何我需要它:) – unbreak
$这个 - >的RenderView(twigname,阵列( 'TEXT_TO_REPLACE''=> $文本),这是你在找什么 – jonju
你为什么不只是?改变你的意见,并使其成为一个变量? – NDM