【发布时间】:2012-09-25 10:48:42
【问题描述】:
我在 Twig 中创建了一个过滤器,它将一些 HTML 包装在输出周围。例如
{{ 'this is a "test"'|display }}
输出
<div id="container">
<div id="content">
this is a "test"
</div>
<div id="toolbar">
<a href="/edit.php">edit</a>
</div>
</div>
困境是,我希望后续过滤器仅应用于原始内容,而不是整个 html。例如
{{ 'this is a "test"'|display|upper|e }}
输出
<DIV ID="CONTAINER">
<DIV ID="CONTENT">
THIS IS A "TEST"
</DIV>
<DIV ID="TOOLBAR">
<A HREF="/EDIT.PHP">EDIT</A>
</DIV>
</DIV>
但你可以想象,我更喜欢这样的输出
<div id="container">
<div id="content">
THIS IS A "TEST"
</div>
<div id="toolbar">
<a href="/edit.php">edit</a>
</div>
</div>
将过滤顺序更改为
{{ 'this is a "test"'|upper|e|display }}
适用于上层过滤器,但不适用于转义过滤器,因为它始终将自己置于过滤器队列的末尾。它也应该与 autoescape=true 一起使用。
阅读 twig 文档,我找不到一个标准的方法来做我想做的事。有人可能尝试过类似的东西吗?或者有人想解决这个问题?
提前致谢!
【问题讨论】:
标签: php filter twig template-engine