Twig:用模板include替换变量中的任意标记

时间:2012-03-15 02:40:18

标签: replace symfony template-engine twig

我正在寻找从控制器传递给我的模板的变量中的标记,并使用另一个模板的include;概念上喜欢的东西:

// controller
$post->content = "<p>Here's a short post that an enduser wrote. The enduser wants
    product info to appear here: %product_info_here%. Over and out.</p>";

// Twig template
<div class="content">
  {{ post.content
     | replace({ '%product_info_here%': include('product_info.html.twig') }) }}
</div>

从开始查看Twig代码,看起来过滤器无法访问其上下文,因此无法执行此操作。这个功能是否已经存在,如果没有,那么在树枝架构中添加它的位置是正确的吗?

更新

这是为了使最终用户能够确定应用应该注入部分的位置。我把这个例子放在控制器中是为了简洁;实际上,文字标记将是最终用户输入的数据库中的Post记录的一部分,并且帖子内容将被传递给Twig模板。我希望Twig模板解析令牌的帖子内容,并注入部分内容。

1 个答案:

答案 0 :(得分:0)

您能否解释一下为什么要将模板放入控制器?我认为以下内容也会起作用:

// Twig template
<div class="content">
  <p>Here's a short post. Product info: {% include('product_info.html.twig') %}</p>
</div>